summaryrefslogtreecommitdiffstats
path: root/modules/proxy/ajp_msg.c
diff options
context:
space:
mode:
authorChris Darroch <chrisd@apache.org>2006-05-26 18:26:52 +0200
committerChris Darroch <chrisd@apache.org>2006-05-26 18:26:52 +0200
commitb2ba96e3409f0d9264a2e9ca24389c4c7b0561e9 (patch)
treef44f7e603f107ceeb850dda75c8df3f00ee7f7f4 /modules/proxy/ajp_msg.c
parent* Update transformation (diff)
downloadapache2-b2ba96e3409f0d9264a2e9ca24389c4c7b0561e9.tar.xz
apache2-b2ba96e3409f0d9264a2e9ca24389c4c7b0561e9.zip
Make the worker and event MPMs not touch the scoreboard when
handling a fork() failure. The previous behaviour appears to have been inherited from the prefork MPM, where is it appropriate. The prefork MPM sets thread_limit to 1 and therefore each child process has a single worker_score structure in the scoreboard's array, i.e., ap_scoreboard_image->servers[slot][0]. In make_child(), it sets this structure's status to SERVER_STARTING, and then does a fork(); if the fork() fails, it resets the status to SERVER_DEAD. The worker and event MPMs, by constrast, obviously use multiple worker_score structures per child process. They may also be in use by worker threads from a previous generation at any particular moment. Therefore make_child() and the parent process in general doesn't normally update them; make_child() doesn't set them all to SERVER_STARTING before doing fork(), for example. So, make_child() shouldn't set them to SERVER_DEAD if fork() fails (and even if it should, it certainly shouldn't be just updating the first one). git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@409693 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'modules/proxy/ajp_msg.c')
0 files changed, 0 insertions, 0 deletions