On 09/03/2007 11:40 PM, Vinicius Petrucci wrote:
> Ruedinger:
> 
> In your patch, I think the call PROXY_WORKER_IS_INITIALIZED(workers)
> before initialize the pointer *workers is causing that error log:
> 
> [Mon Sep 03 18:32:34 2007] [notice] child pid 5225 exit signal
> Segmentation fault (11)

Sorry my fault. Can you please try the attached one please?

> 
> But if I call the method: ap_proxy_initialize_worker_share(conf,
> workers, s); before, I always get worker initialized...

Which is why I called it before :-).

Regards

Rüdiger

Index: modules/proxy/mod_proxy_balancer.c
===================================================================
--- modules/proxy/mod_proxy_balancer.c	(Revision 572643)
+++ modules/proxy/mod_proxy_balancer.c	(Arbeitskopie)
@@ -86,22 +86,24 @@
 {
     int i;
     proxy_worker *workers;
+    int worker_is_initialized;
 
     workers = (proxy_worker *)balancer->workers->elts;
 
     for (i = 0; i < balancer->workers->nelts; i++) {
+        worker_is_initialized = workers->s ? 
+                                PROXY_WORKER_IS_INITIALIZED(workers) : 0;
         ap_proxy_initialize_worker_share(conf, workers, s);
         ap_proxy_initialize_worker(workers, s);
+        if (!worker_is_initialized) {
+            /* Set to the original configuration */
+            workers->s->lbstatus = workers->s->lbfactor =
+            (workers->lbfactor ? workers->lbfactor : 1);
+            workers->s->lbset = workers->lbset;
+        }
         ++workers;
     }
 
-    workers = (proxy_worker *)balancer->workers->elts;
-    for (i = 0; i < balancer->workers->nelts; i++) {
-        /* Set to the original configuration */
-        workers[i].s->lbstatus = workers[i].s->lbfactor =
-          (workers[i].lbfactor ? workers[i].lbfactor : 1);
-        workers[i].s->lbset = workers[i].lbset;
-    }
     /* Set default number of attempts to the number of
      * workers.
      */

Reply via email to