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.

Reply via email to