Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 08 Aug 2008 09:11:25 +0200
From:      Jordi Moles Blanco <jordi@cdmon.com>
To:        Patrick Mahan <mahan@mahan.org>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: problems with a C script, exiting with signal 10
Message-ID:  <489BF19D.1010804@cdmon.com>
In-Reply-To: <489B2689.8070209@mahan.org>
References:  <489ACAB8.7000503@cdmon.com> <489B2689.8070209@mahan.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi,

thanks for the reply, i will have a close look at what you suggested. 
The thing is that, yes, i work with arrays, pointers, mallocs and so on. 
I'll try to make sure everything is initiliazed properly before being used.

Thanks for the advice.




En/na Patrick Mahan ha escrit:
>
>
> Jordi Moles Blanco presented these words - circa 8/7/08 3:13 AM->
>> Hi,
>>
>> I've got this home-made script, written in C, on a  Freebsd 7.0 
>> server with different versions of postfix: 2.3,2,4 and 2.5
>>
>> The problem is that, while most of the time it works like a charm, 
>> sometimes it crashes and bounces the message. It's not really a big 
>> deal, cause the sender gets notified that their mail wasn't delivered 
>> and hopefully, they will resend it. However, the problem is that I've 
>> tried to debug my script but found nothing wrong at all, cause it 
>> only fails from time to time, let's say... once for each 2000 
>> messages that postfix receives, and it appears to do so in a random way.
>>
>> As i said... postfix can fail to deliver a message to one particular 
>> mailbox, but if then you resend the very same message to the very 
>> same mailbox, it will be delivered.
>>
>> The error is reported in both "maillog" and "messages", like this:
>>
>>
>> ******/var/log/maillog********
>> Aug  7 01:55:19 mail01 postfix/pipe[27534]: 3E1A0143709: 
>> to=<EMAIL_ACCOUNT>, relay=quota_postfix, delay=0.23, 
>> delays=0.11/0/0/0.11, dsn=5.3.0, status=bounced (Command died with 
>> signal 10: "/usr/local/etc/postfix/quota_postfix")
>>
>>
>> *****/var/log/messages*******
>> Aug  7 01:55:19 mail01 kernel: pid 29535 (quota_postfix), uid 125: 
>> exited on signal 10
>>
>
> Well signal 10 is SIGBUS which is indicative of (generally) a bad 
> address,
> non-aligned memory address (on platforms it matters) or a hardware error.
> I would look for places you are dereferencing a pointer without perhaps
> first validating it.
>
> Given that it rarely occurs, I might suspect that you are allocating some
> memory, but failing to completely initialize (malloc() doesn't zero out
> memory) it or assuming it is already initialize.
>
> Good luck,
>
> Patrick
>>
>> Here you have some extra information about the script itself and the 
>> master.cf
>>
>>
>> *****/usr/local/etc/postfix/quota_postfix***
>>
>> # ls -la /usr/local/etc/postfix/quota_postfix
>> -rwsr-xr-x  1 postfix  postfix  20048 Aug  4 10:18 
>> /usr/local/etc/postfix/quota_postfix
>>
>> It's got de suid flag cause it performs a "du" command and other file 
>> operations which need permissions, although i've tried with other 
>> groups of permissions and it eventually crashes anyway with "signal 10"
>>
>> ******master.cf*********
>>
>> .........
>>
>> # spamfilter
>> spamfilter      unix    -       n       n       -       20      pipe
>> flags=R user=filter argv=/home/antispam.pl "localhost:10027" 
>> "antispam" "${sender}" "${recipient}" "/usr/local/bin/spamc"
>>
>> # from spamfilter to smtpd:10026
>> localhost:10027 inet    n       -       n       -       100       
>> smtpd -o content_filter=quota_postfix
>>
>>
>> # quota_postfix
>> quota_postfix      unix    -       n       n       -       20      pipe
>> flags=R user=filter argv=/usr/local/etc/postfix/quota_postfix 
>> "localhost" "10028" "${sender}" "${recipient}" "${domain}"
>>
>> # from quota_postfix to smtpd:10028
>> localhost:10028 inet    n       -       n       -       100       
>> smtpd -o content_filter=
>>
>> ................
>>
>> So far, any program which crashed would leave a ".core" file in 
>> /usr/crash, but this one is not doing the same, so... i can't 
>> actually debug from the core file either.
>> Sysctl in my FreeBSD server is ok, but i guess that postfix, somehow 
>> is preventing this filter from generating a core file. Is that 
>> possible? Or am i completely wrong?
>>
>> How could I, at least, generate the .core file?
>>
>> Thanks.
>>
>>
>> _______________________________________________
>> freebsd-questions@freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
>> To unsubscribe, send any mail to 
>> "freebsd-questions-unsubscribe@freebsd.org"
>>
>>




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?489BF19D.1010804>