On Aug 29, 2005, at 9:29 PM, Duncan Findlay wrote:
On Mon, Aug 29, 2005 at 08:57:31PM -0700, John Rudd wrote:
Does this fix the problem with SIGCHLD?
Do you have a bug number? What problem with SIGCHLD are you talking
about?
I do not have a bug number. It's a problem I mentioned on the list
just two days ago:
From: John Rudd <[EMAIL PROTECTED]>
Date: August 27, 2005 7:32:24 PM PDT
To: Spamassassin <users@spamassassin.apache.org>
Subject: Problems with SpamAssassin 3.1 RC1and MIMEDefang
Return-Path:
<[EMAIL PROTECTED]>
X-Ucsc-Cats-Mailscanner-Spamcheck:
X-Ucsc-Cats-Mailscanner-Spamcheck: not spam, SpamAssassin (score=0,
required 8)
This is a problem that some mimedefang people are experiencing with SA
3.1 rc1.
(mimedefang slave processes are becoming un-killable due to a
mis-feature in SA 3.1 which messes with SIGCHLD)
Begin forwarded message:
From: "David F. Skoll" <[EMAIL PROTECTED]>
Date: August 27, 2005 6:01:28 PM PDT
To: mimedefang@lists.roaringpenguin.com
Subject: Re: [Mimedefang] Problems with SpamAssassin 3.1 RC1and
MIMEDefang
Martin Blapp wrote:
Please download SA3.1 Pre 1 and try yourself.
I downloaded it, and didn't have to try anything; the problem was
obvious
after I read the SA 3.1 code.
It's a bug in SA 3.1.
Look at the file "Dns.pm", in the routine enter_helper_run_mode.
We see this code:
# enforce SIGCHLD as DEFAULT; IGNORE causes spurious kernel warnings
# on Red Hat NPTL kernels (bug 1536), and some users of the
# Mail::SpamAssassin modules set SIGCHLD to be a fatal signal
# for some reason! (bug 3507)
$self->{old_sigchld_handler} = $SIG{CHLD};
$SIG{CHLD} = 'DEFAULT';
There's a leave_helper_run_mode that resets the SIGCHLD handler to its
old value.
HOWEVER: If the slave dies sometime between enter_helper_run_mode and
leave_helper_run_mode, the multiplexor never gets a SIGCHLD signal.
I don't know why the SA developers are even monkeying with the
SIGCHLD handler
in the Perl module; you'd have to ask them. It seems like a bad idea
to me.
I think I have a workaround; I'll release a beta soon.
In the meantime, I believe that turning off the embedded interpreter
will
make it work properly.
Regards,
David.