]> granicus.if.org Git - apache/commitdiff
Merge r1542379 from trunk:
authorJim Jagielski <jim@apache.org>
Thu, 20 Feb 2014 19:38:49 +0000 (19:38 +0000)
committerJim Jagielski <jim@apache.org>
Thu, 20 Feb 2014 19:38:49 +0000 (19:38 +0000)
PR: 54852. Only use a dummy_connection for idle processes
Reviewed/backported by: jim

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1570327 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
STATUS
server/mpm_unix.c

diff --git a/CHANGES b/CHANGES
index b0109dcc2e9933410389d552cfea44afb5c7e3c8..737984bd2f662796a5d3afc3431a0e90e4a8ebaa 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,9 @@
 
 Changes with Apache 2.4.8
 
+  *) prefork: Fix long delays when doing a graceful restart.
+     PR 54852 [Jim Jagielski, Arkadiusz Miskiewicz <arekm maven pl>]
+
   *) FreeBSD: Disable IPv4-mapped listening sockets by default for versions
      5+ instead of just for FreeBSD 5. PR 53824. [Jeff Trawick]
 
diff --git a/STATUS b/STATUS
index 5582f72c4ac25df470d7b2c9772163da647e4634..366989c3600b4f3011dcdabf84226c21e06080e1 100644 (file)
--- a/STATUS
+++ b/STATUS
@@ -98,10 +98,6 @@ RELEASE SHOWSTOPPERS:
 PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
   [ start all new proposals below, under PATCHES PROPOSED. ]
 
-  * prefork: PR: 54852. Only use a dummy_connection for idle processes
-    trunk patch: http://svn.apache.org/viewvc?view=revision&revision=1542379
-    2.4.x patch: trunk patch works mod CHANGES
-    +1: jim, covener, humbedooh
 
 
 PATCHES PROPOSED TO BACKPORT FROM TRUNK:
index 063af725f4fc557b6d45f8a9f85d9fa7acfb845d..0000cb6672c3f867952dd063d79f3de764b49fb6 100644 (file)
@@ -742,7 +742,12 @@ void ap_mpm_pod_killpg(ap_pod_t *pod, int num)
      * readers stranded (a number of them could be tied up for
      * a while serving time-consuming requests)
      */
+    /* Recall: we only worry about IDLE child processes here */
     for (i = 0; i < num && rv == APR_SUCCESS; i++) {
+        if (ap_scoreboard_image->servers[i][0].status != SERVER_READY ||
+            ap_scoreboard_image->servers[i][0].pid == 0) {
+            continue;
+        }
         rv = dummy_connection(pod);
     }
 }