amavis crashing in Natty
Scott Kitterman
amavis at kitterman.com
Sun Mar 13 15:34:03 CET 2011
Patrick Ben Koetter <p at state-of-mind.de> wrote:
Scott, look at the diff below. Mark posted this a while ago. * Scott Kitterman <amavis at kitterman.com>: > Patrick Ben Koetter <p at state-of-mind.de> wrote: > > * Florian Effenberger <floeff at gmail.com>: > I just discovered some woes with > amavis on Natty. Maybe someone can > confirm, so a fix could make it right > into the release: > > https://bugs.launchpad.net/ubuntu/+source/amavisd-new/+bug/731878 I think > this goes back to a problem in Net::Server, which doesn't kill old processes > correctly when /etc/init.d/amavis force-reload has been executed. Marc > posted a fix for this to the (old) list. p at rick > > I thought I checked when that was discussed and Natty had the fixed version. > Which version do we need (or even better, please point me at the patch again > and I'll do a code check)? The following patch against Net-Server-0.99 seems to handle it: --- Net/Server/PreFork.pm~ 2010-07-08 21:13:47.000000000 +0200 +++ PreFork.pm 2011-01-04 18:48:54.103050023 +0100 @@ -331,4 +3
31,13
@@ ); + ### reclaim process exit status from any terminated child process + ### inherited from a previous incarnation whose SIGCHLD signal was + ### ignored during a blind period between a restart and the moment + ### when the SIGCHLD handler was established just now + while ( defined(my $chld = waitpid(-1, WNOHANG)) ){ + last unless $chld > 0; + $self->{reaped_children}->{$chld} = 1; + } + ### loop on reading info from the children while( 1 ){ --- Net/Server/PreForkSimple.pm~ 2010-05-05 05:01:58.000000000 +0200 +++ Net/Server/PreForkSimple.pm 2011-01-04 18:40:23.631629852 +0100 @@ -332,4 +332,13 @@ ); + ### reclaim process exit status from any terminated child process + ### inherited from a previous incarnation whose SIGCHLD signal was + ### ignored during a blind period between a restart and the moment + ### when the SIGCHLD handler was established just now + while ( defined(my $chld = waitpid(-1, WNOHANG)) ){ + last unless $chld > 0; + $self->delete_child($chld); + } + ###
loop
forever while( 1 ){ -- All technical questions asked privately will be automatically answered on the list and archived for public access unless privacy is explicitely required and justified. saslfinger (debugging SMTP AUTH): <http://postfix.state-of-mind.de/patrick.koetter/saslfinger/>;
Thanks. I'll check it later today and get it uploaded (assuming it's not already there).
Scott K
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.amavis.org/pipermail/amavis-users/attachments/20110313/e05eeb2c/attachment.html>
More information about the amavis-users
mailing list