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