From owner-freebsd-questions@FreeBSD.ORG Thu Aug 7 16:45:10 2008 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A4AB41065707 for ; Thu, 7 Aug 2008 16:45:10 +0000 (UTC) (envelope-from mahan@mahan.org) Received: from ns.mahan.org (ns.mahan.org [67.116.10.138]) by mx1.freebsd.org (Postfix) with ESMTP id 62C0F8FC0C for ; Thu, 7 Aug 2008 16:45:10 +0000 (UTC) (envelope-from mahan@mahan.org) Received: from widowmaker.local (crowTrobot [67.116.10.140]) by ns.mahan.org (8.13.6/8.13.6) with ESMTP id m77Gj2ns000788; Thu, 7 Aug 2008 09:45:05 -0700 (PDT) (envelope-from mahan@mahan.org) Message-ID: <489B2689.8070209@mahan.org> Date: Thu, 07 Aug 2008 09:44:57 -0700 From: Patrick Mahan User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.1.16) Gecko/20080707 Thunderbird/2.0.0.16 Mnenhy/0.7.5.0 MIME-Version: 1.0 To: jordi@cdmon.com References: <489ACAB8.7000503@cdmon.com> In-Reply-To: <489ACAB8.7000503@cdmon.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-questions@freebsd.org Subject: Re: problems with a C script, exiting with signal 10 X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Aug 2008 16:45:10 -0000 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=, 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" > >