Author: rjung
Date: Tue Oct 28 12:25:53 2008
New Revision: 708643
URL: http://svn.apache.org/viewvc?rev=708643&view=rev
Log:
Fix BZ 46109:
decay reply_timeouts even when lb method is busyness.
Also reset reply_timeouts during forced recovery.
This problem was already present in 1.2.26.
Modified:
tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c
Modified: tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c
URL:
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c?rev=708643&r1=708642&r2=708643&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c Tue Oct 28 12:25:53
2008
@@ -567,6 +567,7 @@
unsigned int i;
int forced = 0;
lb_sub_worker_t *w = NULL;
+ ajp_worker_t *aw = NULL;
JK_TRACE_ENTER(l);
for (i = 0; i < p->num_of_workers; i++) {
@@ -574,8 +575,10 @@
if (w->s->state == JK_LB_STATE_ERROR) {
if (JK_IS_DEBUG_LEVEL(l))
jk_log(l, JK_LOG_INFO,
- "worker %s is marked for recovery",
+ "worker %s is marked for forced recovery",
w->name);
+ aw = (ajp_worker_t *)w->worker->worker_private;
+ aw->s->reply_timeouts = 0;
w->s->state = JK_LB_STATE_FORCE;
forced++;
}
@@ -595,18 +598,20 @@
{
unsigned int i;
jk_uint64_t curmax = 0;
+ lb_sub_worker_t *w;
+ ajp_worker_t *aw;
JK_TRACE_ENTER(l);
- if (p->lbmethod != JK_LB_METHOD_BUSYNESS) {
- for (i = 0; i < p->num_of_workers; i++) {
- lb_sub_worker_t *w = &p->lb_workers[i];
- ajp_worker_t *aw = (ajp_worker_t *)w->worker->worker_private;
+ for (i = 0; i < p->num_of_workers; i++) {
+ w = &p->lb_workers[i];
+ if (p->lbmethod != JK_LB_METHOD_BUSYNESS) {
w->s->lb_value >>= exponent;
if (w->s->lb_value > curmax) {
curmax = w->s->lb_value;
}
- aw->s->reply_timeouts >>= exponent;
}
+ aw = (ajp_worker_t *)w->worker->worker_private;
+ aw->s->reply_timeouts >>= exponent;
}
JK_TRACE_EXIT(l);
return curmax;
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]