SA Bugzilla – Bug 858
spamd exits after reaping a child under Solaris
Last modified: 2002-09-09 23:31:48 UTC
Solaris has this stupid behavior of delivering an EAGAIN error when a slow operation (like accept) gets interrupted by a signal. Unfortunately, spamd exits when accept returns undef. In the special case of SA's t/spamd_maxchildren, this leads to the testing process being killed, I don't know why now.
It's more probably "EINTR". Unfortunately, you can't even find out, because the "REAPER" clobbers $!. I'm attaching a "kludge" patch that fixes the problem for me, but it will go into an endless loop on hard errors (that's why the sleep is in).
Created attachment 310 [details] patch against accept interrupt problem on Solaris
This is a dupe of 827. It's not solaris specific, but related to Perl 5.8's new sig-handling code. (I'm assuming you're using perl 5.8) This is also fixed in CVS b2_4_0, I believe, using a slightly more kludgy kludge. *** This bug has been marked as a duplicate of 827 ***
code based on this now checked in, BTW, on both b2_4_0 and merged to HEAD. see bug 827.