httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bill Stoddard" <>
Subject Re: Parent death should force children suttee
Date Wed, 30 Jan 2002 19:38:38 GMT

> Bill Stoddard wrote:
> >
> > > If the parent dies, shouldn't the children get the equivalent
> > > of SIGPIPE on the pod?  However they find out, they should react
> > > appropriately -- i.e., by committing suicide with extreme prejudice.
> >
> > -1 in concept. We should not take the child processes down if
> > the parent process dies a horrible unplanned death. The way it
> > is now, the sysadmin can at least set MaxRequestsPerChild to 0
> > and keep child processes up to handle requests.
> That needs to be done before [re]starting, however.  Once the
> parent is dead, there's no way to control the children short
> of directly signalling them -- which we have formally decried
> for years.  And if the directive isn't set before the children
> were created, you can't tell them to use the new value. :-)
> Setting MaxRequestsPerChild to avoid this is a bogus band-aid.

Not so. If you know your site has this problem and you can't fix it for whatever reason,
you can preemptively set MaxRequestsPerChild to 0 or some suitably high number to give the
admin time to notice the problem when it occurs. It is wrong to whack the entire site if
you can avoid it. For some websites, every minute of downtime costs real $$$ (and
substantial sums in some cases). Anything you can do to prevent downtime is goodness.
Anything you can do to give you time to solve the real problem is goodness. I completely
agree that an admin should -not- rely on this behaviour as a permanent way to
avoid/mitigate the problem.

Real life scenario... Suppose you run a retail web site. You do 90% of your yearly
business in the two weeks prior to Christmas.  For some whacky reason, the parent process
in your Apache site starts dying right at the same time as your peek shopping season

If you do not get this Christmas business, you fire all your employees, loose your house
because you defaulted on the 2nd mortgage and your company folds.

Would you rather your entire website get whacked and go off line when this happens, or
would you rather be able to set StartServers to an appropriately high number and set
MaxRequestPerChild to 0 to enable your site to stay up?  Redeploying your entire retail
websales application to IIS or iPlanet would not be an option on such short notice. Do you
take your site entirely off line until you identify and fix the problem? Are there other
reasonable options?



View raw message