httpd-bugs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject DO NOT REPLY [Bug 19985] - prefork children dying, parent unresponsive
Date Fri, 23 May 2003 15:39:40 GMT
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19985>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19985

prefork children dying, parent unresponsive





------- Additional Comments From trawick@apache.org  2003-05-23 15:39 -------
Note that all the while that the parent is getting SIGCHLD, it *NOT ONCE* gets a
pid reported by wait4() syscall.  On my box, a call to wait4() looks like this
after a child exits and the parent gets SIGCHLD:

wait4(-1, [WIFEXITED(s) && WEXITSTATUS(s) == 0], WNOHANG, NULL) = 3899

(for this example, 3899 is the pid of the child that exited)

wait4() returns 0 when there is no status to reap.

My guess (not verified by reading the code) is that since the parent doens't see
who exited, it doesn't clear the scoreboard entry for that child.  Once the
server runs out of scoreboard entries for new children to use, it won't fork()
anymore.

So why isn't the kernel reporting a pid to us when we call wait4()?

("wait4" is probably waitpid())

---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org


Mime
View raw message