http://bugzilla.spamassassin.org/show_bug.cgi?id=4573
Summary: Changing the handler for SIGCHILD breaks Mimedefang
Product: Spamassassin
Version: 3.1.0
Platform: All
OS/Version: All
Status: NEW
Severity: normal
Priority: P3
Component: spamassassin
AssignedTo: [email protected]
ReportedBy: [EMAIL PROTECTED]
A number of users of MD seem to be having problems with mail scanning,
apparently seeing _alarm_ interrupts in their log. Along with each occurance
of a log record they get an unscanned spam passed through.
The following item was posted to the users list by John Rudd, but considerable
encouragement has not resulted in him posting it here where it can be looked
at, so I'm posting the contents of his original posting.
It is obvious that this problem, which seemingly showed up on RC1, is related
to the recent change that changes the SIGCHILD handler to try to avoid nasty
messages from (I think it was) spamd.
================
Subject: Problems with SpamAssassin 3.1 RC1and MIMEDefang
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: [email protected]
> 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.
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.