]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
merge fix for worker MPM parent process crash to stable branch
authorJeff Trawick <trawick@apache.org>
Thu, 29 Jan 2004 13:46:38 +0000 (13:46 +0000)
committerJeff Trawick <trawick@apache.org>
Thu, 29 Jan 2004 13:46:38 +0000 (13:46 +0000)
Reviewed by: stoddard, jorton

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

CHANGES
STATUS
server/mpm/worker/worker.c

diff --git a/CHANGES b/CHANGES
index dda7e01d9f8713c80b5345a56c38f62d254e2fdc..7091fc192c9201b8971af9fc07542de337aaa056 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,4 +1,8 @@
 Changes with Apache 2.0.49
+
+  *) worker MPM: fix stack overlay bug that could cause the parent
+     process to crash.  [Jeff Trawick]
+
   *) Win32: Add Win32DisableAcceptEx directive. This Windows
      NT/2000/CP directive is useful to work around bugs in some 
      third party layered service providers like virus scanners, 
diff --git a/STATUS b/STATUS
index 92de31e09a31a594768ad89e2dc0e391e53c68fb..39082d66d10867b9e61ca319c783b64969125954 100644 (file)
--- a/STATUS
+++ b/STATUS
@@ -1,5 +1,5 @@
 APACHE 2.0 STATUS:                                              -*-text-*-
-Last modified at [$Date: 2004/01/29 09:50:19 $]
+Last modified at [$Date: 2004/01/29 13:46:37 $]
 
 Release:
 
@@ -74,10 +74,6 @@ RELEASE SHOWSTOPPERS:
     but actually resolving the host would not.  To catch the check
     via retcode, you have to specify the NI_NAMEREQD flag.
 
-  worker MPM parent process crash
-    http://cvs.apache.org/viewcvs.cgi/httpd-2.0/server/mpm/worker/worker.c?r1=1.145&r2=1.146
-    +1: trawick, stoddard, jorton
-
 PATCHES TO BACKPORT FROM 2.1
   [ please place file names and revisions from HEAD here, so it is easy to
     identify exactly what the proposed changes are! ]
index b0e7c32a0e145332c5e0f664f5d2390fa170840b..4fa2460660ddfc735467001bce45635ac0b84aa5 100644 (file)
@@ -1494,7 +1494,8 @@ static void perform_idle_server_maintenance(void)
                 ++idle_thread_count;
             }
         }
-        if (any_dead_threads && totally_free_length < idle_spawn_rate 
+        if (any_dead_threads && totally_free_length < idle_spawn_rate
+                && free_length < MAX_SPAWN_RATE
                 && (!ps->pid               /* no process in the slot */
                     || ps->quiescing)) {   /* or at least one is going away */
             if (all_dead_threads) {