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.
*/