]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
mpm_{event,worker,prefork}: follow up to r1892587: restore ungraceful on MPM change.
authorYann Ylavic <ylavic@apache.org>
Wed, 25 Aug 2021 09:43:59 +0000 (09:43 +0000)
committerYann Ylavic <ylavic@apache.org>
Wed, 25 Aug 2021 09:43:59 +0000 (09:43 +0000)
While at it add a comment for the rationale, including for MPM motorz.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1892595 13f79535-47bb-0310-9956-ffa450edef68

server/mpm/event/event.c
server/mpm/motorz/motorz.c
server/mpm/prefork/prefork.c
server/mpm/worker/worker.c

index dca98d4c3d813a385fdb25628722a6e7fc617881..7bfd6750c895d300049c0f944cdc9dbdf7300b6f 100644 (file)
@@ -3767,6 +3767,11 @@ static int event_pre_config(apr_pool_t * pconf, apr_pool_t * plog,
             test_atomics = 1;
         }
     }
+    else if (retained->mpm->baton != retained) {
+        /* If the MPM changes on restart, be ungraceful */
+        retained->mpm->baton = retained;
+        retained->mpm->was_graceful = 0;
+    }
     retained->mpm->mpm_state = AP_MPMQ_STARTING;
     ++retained->mpm->module_loads;
 
index 311600c210dfcd4725bcea1f9737f2f8828ea194..42ce39be5eb870973087c65424ead2157b6f9cb8 100644 (file)
@@ -1476,15 +1476,17 @@ static int motorz_pre_config(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp)
     if (!g_motorz_core) {
         mz = g_motorz_core = ap_retained_data_create(userdata_key, sizeof(*g_motorz_core));
         mz->mpm = ap_unixd_mpm_get_retained_data();
+        mz->mpm->baton = mz;
         mz->max_daemons_limit = -1;
         mz->timeout_ring = motorz_timer_ring;
         mz->pollset = motorz_pollset;
     }
-    mz->mpm->mpm_state = AP_MPMQ_STARTING;
-    if (mz->mpm->baton != mz) {
-        mz->mpm->was_graceful = 0;
+    else if (mz->mpm->baton != mz) {
+        /* If the MPM changes on restart, be ungraceful */
         mz->mpm->baton = mz;
+        mz->mpm->was_graceful = 0;
     }
+    mz->mpm->mpm_state = AP_MPMQ_STARTING;
     ++mz->mpm->module_loads;
 
     /* sigh, want this only the second time around */
index 5b33b7fb82c5ff5c11e5bd0d5ff3e1df7f945f66..20241cf6c65c5cecd6a7e5ba64b7bc213d68784e 100644 (file)
@@ -1318,6 +1318,11 @@ static int prefork_pre_config(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp
         retained->max_daemons_limit = -1;
         retained->idle_spawn_rate = 1;
     }
+    else if (retained->mpm->baton != retained) {
+        /* If the MPM changes on restart, be ungraceful */
+        retained->mpm->baton = retained;
+        retained->mpm->was_graceful = 0;
+    }
     retained->mpm->mpm_state = AP_MPMQ_STARTING;
     ++retained->mpm->module_loads;
 
index 1f370b2a3baa193b15b8c32c0de7c0c93670572d..c3f2be6f6a4517918338c9b64ba0582cdaa57ab5 100644 (file)
@@ -2036,6 +2036,11 @@ static int worker_pre_config(apr_pool_t *pconf, apr_pool_t *plog,
         retained->mpm->baton = retained;
         retained->max_daemons_limit = -1;
     }
+    else if (retained->mpm->baton != retained) {
+        /* If the MPM changes on restart, be ungraceful */
+        retained->mpm->baton = retained;
+        retained->mpm->was_graceful = 0;
+    }
     retained->mpm->mpm_state = AP_MPMQ_STARTING;
     ++retained->mpm->module_loads;