on 11/09/2013 09:11 Andriy Gapon said the following: > I've been thinking about this problem and the only theory that I have got so > far > is that perhaps an owner httpd process could terminate ungracefully (e.g. > crash). In that case the pool cleanup would never be run. That's OK for > process local resources like memory or file descriptors, which would be freed > by > OS because the process dies anyway. But that's not OK for external resources > like other processes. > In other words, if an httpd process marks an fcgid process as busy and then > suddenly dies, then there is nobody to move the fcgid process back to the > idle list.
Just an idea: perhaps scan_busylist should move a process to a different list (the error list?) after treating it with proc_kill_force? Currently the processes on the busy list are never checked for being a zombie. With the proposed change they should be correctly reaped after all the waiting and killing. -- Andriy Gapon