summaryrefslogtreecommitdiff
path: root/server/mpm/event/event.c
diff options
context:
space:
mode:
authorRuediger Pluem <rpluem@apache.org>2021-09-22 18:48:25 +0000
committerRuediger Pluem <rpluem@apache.org>2021-09-22 18:48:25 +0000
commit8720881b0634383145e87334f1456cbcab4cb6cc (patch)
tree26c6204321489bf514429fa1886af63de0f319f6 /server/mpm/event/event.c
parent6d476a66956a6a81ac8e1f7f419ef0697b9a0b76 (diff)
downloadhttpd-8720881b0634383145e87334f1456cbcab4cb6cc.tar.gz
* Correctly decrement active_daemons also in the case that the child
process decides on its own to die because of MaxRequestsPerChild. PR: 65592 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1893520 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'server/mpm/event/event.c')
-rw-r--r--server/mpm/event/event.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/server/mpm/event/event.c b/server/mpm/event/event.c
index eeb062b74d..aa6304042a 100644
--- a/server/mpm/event/event.c
+++ b/server/mpm/event/event.c
@@ -3118,6 +3118,10 @@ static void perform_idle_server_maintenance(int child_bucket, int num_buckets)
}
ps = &ap_scoreboard_image->parent[i];
if (ps->pid != 0) {
+ if (ps->quiescing == 1) {
+ ps->quiescing = 2;
+ active_daemons--;
+ }
for (j = 0; j < threads_per_child; j++) {
ws = &ap_scoreboard_image->servers[i][j];
status = ws->status;
@@ -3197,7 +3201,6 @@ static void perform_idle_server_maintenance(int child_bucket, int num_buckets)
ap_mpm_podx_signal(retained->buckets[child_bucket].pod,
AP_MPM_PODX_GRACEFUL);
retained->idle_spawn_rate[child_bucket] = 1;
- active_daemons--;
} else {
ap_log_error(APLOG_MARK, APLOG_TRACE5, 0, ap_server_conf,
"Not shutting down child: total daemons %d / "