httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Greg Ames <>
Subject Re: ap_graceful_stop_signalled()
Date Wed, 01 Aug 2001 15:31:39 GMT
Jeff Trawick wrote:
> All this seems to be used for is to see if we should accept another
> request on a keepalive connection, so it seems fair to see if it can
> be changed.
> There are reasons other than graceful restart why we wouldn't want to
> accept another request:
> . MaxRequestsPerChild reached (a threaded MPM can reach that limit
>   independent of what is happening on this connection)
> . some other sort of shutdown (yeah, graceless shouldn't care but we
>   don't know how to knock out threads portably AFAIK; weird MPMs may
>   have their own ideas about what to do)
> Why not replace ap_graceful_stop_signalled() with a call to
> ap_mpm_query(), as in:
>   int mpm_exiting;
>   ap_mpm_query(AP_MPMQ_IS_EXITING, &mpm_exiting);
>   if (mpm_exiting) {
>     break;
>   }
> or something more explicit like
>   AP_MPMQ_SHOULD_START_NEW_REQUEST      <- yeah, stupid name

As I mentioned in the office yesterday, I think this is a good
(necessary?) idea.  Consider what happens with an HTTP/1.1 proxy server
front end, pipelining & multiplexing requests over a single connection
to a back end server.  That connection could keep pumping requests
forever, or at least until one of the servers dies.  

This also would stop the phenomenon that Cliff discovered when he used
server-status?refresh=2 , which also pumps requests forever over a
connection.  OTOH, it's a great way to hunt for bugs in p_i_s_m    8^)


View raw message