httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeff Trawick <traw...@attglobal.net>
Subject Re: [PATCH] raise MAX_SERVER_LIMIT
Date Tue, 27 Jan 2004 19:24:46 GMT
Jeff Trawick wrote:
> worker MPM stack corruption in parent:
> 
>         int free_slots[MAX_SPAWN_RATE];
> 
> ...
> 
>                 /* great! we prefer these, because the new process can
>                  * start more threads sooner.  So prioritize this slot
>                  * by putting it ahead of any slots with active threads.
>                  *
>                  * first, make room by moving a slot that's potentially 
> still
>                  * in use to the end of the array
>                  */
> NEW CODE->      ap_assert(free_length < MAX_SPAWN_RATE);
>                 free_slots[free_length] =
>                    free_slots[totally_free_length];
> 
> [Tue Jan 27 12:20:19 2004] [crit] [Tue Jan 27 12:20:19 2004] file 
> worker.c, line 1590, assertion "free_length < MAX_SPAWN_RATE" failed

I'm testing with this patch currently (so far so good):

Index: server/mpm/worker/worker.c
===================================================================
RCS file: /home/cvs/httpd-2.0/server/mpm/worker/worker.c,v
retrieving revision 1.145
diff -u -r1.145 worker.c
--- server/mpm/worker/worker.c	27 Jan 2004 15:19:58 -0000	1.145
+++ server/mpm/worker/worker.c	27 Jan 2004 19:20:10 -0000
@@ -1441,7 +1441,8 @@
                  ++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) {


Mime
View raw message