Date: Thu, 07 Aug 2008 09:44:57 -0700 From: Patrick Mahan <mahan@mahan.org> To: jordi@cdmon.com Cc: freebsd-questions@freebsd.org Subject: Re: problems with a C script, exiting with signal 10 Message-ID: <489B2689.8070209@mahan.org> In-Reply-To: <489ACAB8.7000503@cdmon.com> References: <489ACAB8.7000503@cdmon.com>
next in thread | previous in thread | raw e-mail | index | archive | help
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?489B2689.8070209>