httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <...@covalent.net>
Subject Re: idle server processes not going away
Date Fri, 01 Jun 2001 21:13:55 GMT

> > > 2) we make sure we wake up when the
> > > signal handler returns.  Do you have a third suggestion?
> > >
> > > I'll post a patch in the next few minutes for solution 2.  It seems to
> > > work fine.
> >
> > I think the only way to really solve this, is to look at how the longjmp()
> > was used in 1.3 to ensure we died correctly.  I would also suggest looking
> > at how threaded dies.  If the real problem is the signal handling, then I
> > would suggest that Dean was correct about signals and daemons, and we
> > should just remove all singals and use the pipe_of_death for all Unix
> > MPMs.
>
> Dean has always been right about signals. They are really poor ways to
> communicate with code.
>
> The pipe_of_death is really the way to go.

I agree, but the problem now is how to solve
SINGLE_LISTEN_UNSERIALIZED_ACCEPT, and still respect graceful stop
requests for the child processes.  I still think that the best way to do
this, is to send OOB data to the child process through the same port that
the child has always listened to.  That allows the child to be woken up
out of the select call, and we can still use the signals for graceless
stopping of child processes.  Of course, this leads us open to DOS, if
done poorly.

Ryan

_______________________________________________________________________________
Ryan Bloom                        	rbb@apache.org
406 29th St.
San Francisco, CA 94131
-------------------------------------------------------------------------------


Mime
View raw message