Aaron Stone wrote: > So I'm reading through the pool.c and server.c code, and there's this > function child_unregister that's called from the child process signal > handlers. It set the scoreboard status for the calling child process's > pid to STATE_WAIT.
It does. But I concluded later that the pooling code shouldn't have to rely on scoreboard data. > > I can't find any code that reaps the STATE_WAIT processes. I also > haven't been able to zombie anything, despite trying really hard! same here. > > http://www.dbmail.org/mantis/view.php?id=361 > > This bug is still bothering me. I think a proper fix is to write a > manage_zombie_children function that reaps STATE_WAIT entries from the > scoreboard. zombies should not happen, ever. No need cleaning up if we never spill any. STATE_WAIT is a symptom. Children should not be in that state. But I think kaname has a point by suggesting WNOHANG|WUNTRACED in reap_child. reap_child(void) was meant for killing of a redundant spare child. If kill indeed fails (not too exotic), waitpid(chpid,NULL,0) will indeed cause problems. Ive patched reap_child. -- ________________________________________________________________ Paul Stevens paul at nfg.nl NET FACILITIES GROUP GPG/PGP: 1024D/11F8CD31 The Netherlands________________________________http://www.nfg.nl