> > >   http://bugzilla.spamassassin.org/show_bug.cgi?id=4518

> I expect the scenario goes like that:
> - SA spawns a pyzor process, which does not finish in 5 seconds;
> - due to #4518 the pipe is not auto-closed by SA until a next
>   mail-to-be-checked by this process comes around, which may
>   take some time on a small site during non-busy hours;
> - during that time pyzor process terminates, but is not reclaimed
>   by the parent process because it still has its end of a pipe open.
>   During this time the pyzor process is technically a zombie.
> The zombie is reclaimed when the pipe is eventually closed,
> or later by the init process when amavisd child process retires,
> which may be after a few dozens of processed messages.

I can confirm that SA 3.1 without a patch in #4518 is leaving behind
non-reclaimed (zombie) pyzor processes every couple of minutes
(when pyzor times out) on an otherwise normally running system.
I even suspect that an implicit Perl close (in subsequent open)
does not reclaim (wait(2)) a child process. These zombies eventually
go away by themselves when the parent process retires (being
reclaimed by the init process), so the problem is not too serious.

I'll attach a cleaner patch to bug report 4518, as the original
one no longer applies cleanly against the current trunk code.
The patched Pyzor.pm and DCC.pm now reclaim timed out helper
processes correctly.

  Mark

Reply via email to