<html><head></head><body><div class="gmail_quote">Patrick Ben Koetter <p@state-of-mind.de> wrote:<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div style="white-space: pre-wrap; word-wrap:break-word; ">Scott,
 look at the diff below. Mark posted this a while ago.

* Scott Kitterman <amavis@kitterman.com>:
> Patrick Ben Koetter <p@state-of-mind.de> wrote:

> * Florian Effenberger <floeff@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: >
> <a href="https://bugs.launchpad.net/ubuntu/+source/amavisd-new/+bug/731878">https://bugs.launchpad.net/ubuntu/+source/amavisd-new/+bug/731878</a> 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@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/<a href="http://PreFork.pm">PreFork.pm</a>~      2010-07-08 21:13:47.000000000 +0200
+++ <a href="http://PreFork.pm">PreFork.pm</a>  2011-01-04 18:48:54.103050023 +0100
@@ -331,4 +331,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/<a href="http://PreForkSimple.pm">PreForkSimple.pm</a>~        2010-05-05 05:01:58.000000000 +0200
+++ Net/Server/<a href="http://PreForkSimple.pm">PreForkSimple.pm</a> 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):
<<a href="http://postfix.state-of-mind.de/patrick.koetter/saslfinger/&gt">http://postfix.state-of-mind.de/patrick.koetter/saslfinger/&gt</a>;

</div></blockquote></div><br clear="all">Thanks. I'll check it later today and get it uploaded (assuming it's not already there).<br>
<br>
Scott K</body></html>