httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bill Stoddard <b...@wstoddard.com>
Subject Re: [1.3 PATCH] don't hold accept mutex while running 3rd-party code at termination
Date Fri, 09 May 2003 18:12:03 GMT
Jeff Trawick wrote:

> two scenarios make it a bad idea to be able to hold the accept mutex 
> when exiting a child process for idle child cleanup:
>
> 1) a child exit hook or a pchild cleanup takes a while
>
> This results in a brief server outage since other children can't 
> accept new connections.
>
> (If a child exit hook or a pchild cleanup takes forever/deadlocks, 
> we're toast anyway, since the scoreboard slot is occupied and we won't 
> be able to keep creating new child processes.)
>
> 2) a child exit hook or a pchild cleanup segfaults and accept mutex 
> mechanism isn't automatically cleaned up by the OS
>
> (mechanism = pthread, 3rd party module = XXX)
>
> deadlock :(
>
> If anybody wants a toy 1.3 module to sleep or segfault in child exit 
> hook, just let me know.  It is much easier to install than the 
> commercial version.


In 1.3 (on Unix), I would expect that the thread that does the accept 
would be the same thread that runs the child exit hook and pchild 
cleanups. When would that not be the case?  So how can case 2) ever occur?

Bill



Mime
View raw message