httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dean Gaudet <>
Subject Re: [PATCH] http_main big patch
Date Sun, 29 Jun 1997 22:05:17 GMT
Oh yeah, I meant to beef up that comment.  I personally totally trust
graceful on all the architectures I've used it on (linux 2.x, irix 5.3 and
6.2, solaris 2.5.1, bsdi 2.x).  They handle a while 1 { kill -USR1 } loop
no problem for about 10 minutes while still surfing the site without
broken links. 

On those architectures, this will either kill off one child (satisfying
the definition of scoreboard maintenance) or that one child's status will
have changed between counting and killing, which also satisfies the
definition of scoreboard maintenance.  Er, well close enough -- Two
children might change state, one into idle and one out of idle... but
given the randomness of request arrival time this sort of thing isn't
likely to happen for a long enough time for it to be critical.

But it might fail on boxes where delivering a USR1 to the child is somehow
unreliable.  I'm open for other suggestions ... one option is a "char
parent_says_die_now[ HARD_SERVER_LIMIT ];" array in the scoreboard.  But
this should be a #define that we add only when we discover such
unfortunate boxes. 


On Sun, 29 Jun 1997, Jim Jagielski wrote:

> Dean Gaudet wrote:
> > 
> > +     if (idle_count > daemons_max_free) {
> > + 	/* kill off one child... we use SIGUSR1 because that'll cause it to
> > + 	 * shut down gracefully, in case it happened to pick up a request
> > + 	 * while we were counting
> > + 	 */
> > + 	kill (SIGUSR1, scoreboard_image->servers[to_kill].pid);
> Do we trust graceful restarts enough for this?
> -- 
> ====================================================================
>       Jim Jagielski            |       jaguNET Access Services
>           |
>             "Look at me! I'm wearing a cardboard belt!"

View raw message