Hi I am facing problem in using jkstatus to update subworker lb_factor, it seems that after changing it, the mod_jk balancer does not change anything
Looking at source code in trunk, I think that there is bug , I include herewith the 2 changes that I think will fix the problem, 1) I move update_mult() a head of jk_lb_push() in update_worker() so the lb_mult of sub worker can be persisted to shm 2) I reverse the condition using to guard of update shm of subworkder in jk_lb_push() Can someone review it ? to be honest I am not very familiar with the code base. Index: native/common/jk_status.c =================================================================== --- native/common/jk_status.c (revision 1305015) +++ native/common/jk_status.c (working copy) @@ -4161,6 +4161,9 @@ if (rv & JK_STATUS_NEEDS_ADDR_PUSH) { aw->addr_sequence++; } + if (rv & JK_STATUS_NEEDS_UPDATE_MULT) + /* Recalculate the load multiplicators wrt. lb_factor */ + update_mult(lb, l); if (rv & (JK_STATUS_NEEDS_PUSH | JK_STATUS_NEEDS_ADDR_PUSH)) { wr->sequence++; lb->sequence++; @@ -4168,9 +4171,6 @@ } if (rv & JK_STATUS_NEEDS_RESET_LB_VALUES) reset_lb_values(lb, l); - if (rv & JK_STATUS_NEEDS_UPDATE_MULT) - /* Recalculate the load multiplicators wrt. lb_factor */ - update_mult(lb, l); if (rc == JK_FALSE) { jk_log(l, JK_LOG_ERROR, "Status worker '%s' failed updating sub worker '%s' (at least partially).%s", Index: native/common/jk_lb_worker.c =================================================================== --- native/common/jk_lb_worker.c (revision 1305015) +++ native/common/jk_lb_worker.c (working copy) @@ -370,7 +370,7 @@ for (i = 0; i < p->num_of_workers; i++) { lb_sub_worker_t *w = &p->lb_workers[i]; - if (w->sequence < w->s->h.sequence) { + if (w->sequence > w->s->h.sequence) { jk_worker_t *jw = w->worker; ajp_worker_t *aw = (ajp_worker_t *)jw->worker_private; --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org