https://issues.apache.org/bugzilla/show_bug.cgi?id=46109
Summary: The reply_timeout counter doesn't decay, when Busyness
is specified to lb method.
Product: Tomcat Connectors
Version: unspecified
Platform: All
OS/Version: All
Status: NEW
Severity: enhancement
Priority: P3
Component: Common
AssignedTo: [email protected]
ReportedBy: [EMAIL PROTECTED]
Created an attachment (id=22784)
--> (https://issues.apache.org/bugzilla/attachment.cgi?id=22784)
patch to decay_load
The reply_timeout counter is not cleared by 0 when the worker becomes force
recovery state.
In addition, the counter doesn't decay because the following codes are not
executed when Busyness is specified to method directive.
Therefore, it is easy to become an error state.
-----jk_lb_worker.c
600: if (p->lbmethod != JK_LB_METHOD_BUSYNESS) {
601: for (i = 0; i < p->num_of_workers; i++) {
602: lb_sub_worker_t *w = &p->lb_workers[i];
603: ajp_worker_t *aw = (ajp_worker_t *)w->worker->worker_private;
604: w->s->lb_value >>= exponent;
605: if (w->s->lb_value > curmax) {
606: curmax = w->s->lb_value;
607: }
608: aw->s->reply_timeouts >>= exponent;
609: }
610: }
---
I think that to decay the counter is nice idea for Busyness method as well as
in the case of other methods.
How about as follows?
Index: mod_jk-head/native/common/jk_lb_worker.c
===================================================================
--- mod_jk-head/native/common/jk_lb_worker.c (revision 708408 (
https://svn.apache.org/viewcvs.cgi?view=rev&rev=708408 ))
+++ mod_jk-head/native/common/jk_lb_worker.c (working copy)
@@ -597,16 +597,16 @@
jk_uint64_t curmax = 0;
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++) {
+ lb_sub_worker_t *w = &p->lb_workers[i];
+ ajp_worker_t *aw = (ajp_worker_t *)w->worker->worker_private;
+ 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->s->reply_timeouts >>= exponent;
}
JK_TRACE_EXIT(l);
regards.
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]