You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by ji...@apache.org on 2013/11/15 20:29:11 UTC

svn commit: r1542379 - in /httpd/httpd/trunk: CHANGES server/mpm_unix.c

Author: jim
Date: Fri Nov 15 19:29:11 2013
New Revision: 1542379

URL: http://svn.apache.org/r1542379
Log:
PR: 54852. Only use a dummy_connection for idle processes

Modified:
    httpd/httpd/trunk/CHANGES
    httpd/httpd/trunk/server/mpm_unix.c

Modified: httpd/httpd/trunk/CHANGES
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/CHANGES?rev=1542379&r1=1542378&r2=1542379&view=diff
==============================================================================
--- httpd/httpd/trunk/CHANGES [utf-8] (original)
+++ httpd/httpd/trunk/CHANGES [utf-8] Fri Nov 15 19:29:11 2013
@@ -4,6 +4,9 @@ Changes with Apache 2.5.0
   *) Fix potential rejection of valid MaxMemFree and ThreadStackSize
      directives.  [Mike Rumph <mike.rumph oracle.com>]
 
+  *) prefork: Fix long delays when doing a graceful restart.
+     PR 54852 [Jim Jagielski, Arkadiusz Miskiewicz <arekm maven pl>]
+
   *) core: Add parse_errorlog_arg callback to ap_errorlog_provider
      to allow providers to check the ErrorLog argument. [Jan Kaluza]
 

Modified: httpd/httpd/trunk/server/mpm_unix.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/mpm_unix.c?rev=1542379&r1=1542378&r2=1542379&view=diff
==============================================================================
--- httpd/httpd/trunk/server/mpm_unix.c (original)
+++ httpd/httpd/trunk/server/mpm_unix.c Fri Nov 15 19:29:11 2013
@@ -742,7 +742,12 @@ void ap_mpm_pod_killpg(ap_pod_t *pod, in
      * 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);
     }
 }