httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rob Hartill <>
Subject Re: 0.73g + FreeBSD 2.0.5
Date Fri, 23 Jun 1995 12:09:45 GMT
Brian T writes,

>     Last night, I ran the same test as before (20 children, 50
> benchmark clients) but with a cron job sighupping the parent server
> once an hour.  From the client logs, it looks like a SIGHUP kills any
> connections currently in progress.  Is this still true?

SIGHUP tells the parent to kill all the children immediately.

>     Came in this morning and the machine was still chugging away, no
> fd leaks, CGI's were happily running, not too much swapping going on,
> but had three zombies (this was 8 minutes after the last SIGHUP).

I think I have a possible fix for the zombies. The problem seems to be
with the SIGCHLD signal handler.. it's possible for it to have interrupts
disabled while it replaces one dead child, but it misses a signal from another
dead child during that time.

The fix is to have the handler cleanup all current dead children, but then
there's still a chance that before ints are reenabled, but after it has
checked for another dead child, another one dies. To fix that, the parent
will look for dead children after reenabling interrupts, but before it
goes to sleep.

0.7.3h to follow sometime today.


View raw message