Jeff Trawick wrote:
>                                                                We ran
> into this previously with threaded, and though prefork should have
> less chance of this problem we don't know what libc and plugin modules
> will be doing.

Actually, prefork was where I first ran into problems with the mutexes
during cleanups. When perform_idle_server_maintenance was called. If
it found too many idle workers it would try to cleanup. On occaision it
would clean up a worker that was still starting. The new worker had
grabbed the mutex for pools, but not yet obtained a pool. Clean_child_exit
was called and tried to free the pool but couldn't get past the mutex.
The child could not come up or go down. The code in perform_idle_server_
maintenance kept trying to kill the same worker, so the number of
workers could never drop below this threashold again.

-- 
Paul J. Reder
-----------------------------------------------------------
"The strength of the Constitution lies entirely in the determination of each
citizen to defend it.  Only if every single citizen feels duty bound to do
his share in this defense are the constitutional rights secure."
-- Albert Einstein

Reply via email to