On 01/31/2006 08:13 PM, Robby Pedrica wrote:
> Hi Rudiger
> 
> Thanks for the reply:
> 
> a. any idea on when a fix will be available or whether there are patches 
> available for these items?
> b. Yes, if you manually disable a member in balancer-manager, then it becomes 
> enabled ( OK ) after a minute or 2
> 
> Regards
> 
> Robby

Could you please give the attached patch a try and let me know the results.

Regards

Rüdiger
Index: modules/proxy/mod_proxy_balancer.c
===================================================================
--- modules/proxy/mod_proxy_balancer.c  (Revision 371134)
+++ modules/proxy/mod_proxy_balancer.c  (Arbeitskopie)
@@ -84,7 +84,16 @@
 
     for (i = 0; i < balancer->workers->nelts; i++) {
         ap_proxy_initialize_worker_share(conf, workers, s);
-        workers->s->status = PROXY_WORKER_INITIALIZED;
+        if (!(workers->s->status & PROXY_WORKER_INITIALIZED)) {
+            workers->s->status |= (workers->status | PROXY_WORKER_INITIALIZED);
+            ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s,
+                         "proxy: BALANCER: initialized balancer member %d for "
+                         "balancer %s in child %" APR_PID_T_FMT " for (%s) "
+                         "min=%d max=%d smax=%d",
+                          workers->id, balancer->name, getpid(),
+                          workers->hostname, workers->min, workers->hmax,
+                          workers->smax);
+        }
         ++workers;
     }
 
Index: modules/proxy/mod_proxy.c
===================================================================
--- modules/proxy/mod_proxy.c   (Revision 371134)
+++ modules/proxy/mod_proxy.c   (Arbeitskopie)
@@ -200,18 +200,21 @@
                     worker->status |= PROXY_WORKER_DISABLED;
                 else
                     worker->status &= ~PROXY_WORKER_DISABLED;
+                break;
             }
             else if (*v == 'S' || *v == 's') {
                 if (mode)
                     worker->status |= PROXY_WORKER_STOPPED;
                 else
                     worker->status &= ~PROXY_WORKER_STOPPED;
+                break;
             }
             else if (*v == 'E' || *v == 'e') {
                 if (mode)
                     worker->status |= PROXY_WORKER_IN_ERROR;
                 else
                     worker->status &= ~PROXY_WORKER_IN_ERROR;
+                break;
             }
             else {
                 return "Unknow status parameter option";

Reply via email to