This is kind of an odd problem and I'm not sure what to do. For quite a while I had apparent Perl signal-handling problems -- in particular, I couldn't kill spamd, I had to use kill -9. Recently I recompiled Perl in an effort to fix this. I'm using the same Perl version (5.6.1), however I believe the original was probably compiled with -O2, which is buggy on Alphas. I recompiled with -O.
Now spamd responds properly to kill, and 'make test' passes. However, when the child processes hit their max-conn-per-child thresholds, they are never respawned. In fact, they just sit there as zombies: 66909 ?? Is 0:02.82 /usr/local/bin/spamd -d --max-conn-per-child=1 (perl) 66912 ?? Z 0:00.00 (perl) 66913 ?? Z 0:00.00 (perl) 66914 ?? S 0:00.02 spamd child (perl) 66915 ?? S 0:00.02 spamd child (perl) 66916 ?? S 0:00.02 spamd child (perl) Eventually, I run out of spamd processes. Does anyone have any idea what's going on here?