Summary: | Disabled workers in mod_jk are not retried once they get in error state | ||
---|---|---|---|
Product: | Tomcat Connectors | Reporter: | Ruediger Pluem <rpluem> |
Component: | Common | Assignee: | Tomcat Developers Mailing List <dev> |
Status: | RESOLVED FIXED | ||
Severity: | normal | Keywords: | PatchAvailable |
Priority: | P2 | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Hardware: | Other | ||
OS: | All | ||
Attachments: | Patch against 1.2.15 |
Description
Ruediger Pluem
2006-02-28 13:02:20 UTC
Created attachment 17807 [details]
Patch against 1.2.15
Right, it makes sense to retry the disabled worker also. Try by changing the #define JK_WORKER_IN_ERROR(w) ((w)->in_error_state && !(w)->is_disabled && !(w)->is_busy) to: #define JK_WORKER_IN_ERROR(w) ((w)->in_error_state && !(w)->is_busy) Your patch only addresses the byreq lb methods, while the others should be treated in the same way. Ok. I just wasn't sure if adjusting JK_WORKER_IN_ERROR was the right thing to do, so I limited the change to find_bysession_route. Do we really care about disabled workers in find_best_byrequests, find_best_bytraffic and get_most_suitable_worker (here only the one worker case)? I don't think so. Right, we don't care about disabled workers for a single worker cause it's an oxymoron. Anyhow, adjusting JK_WORKER_IN_ERROR should do the trick. I really can not remember why I put that check at the first place. Fixed in the SVN. Thanks for spotting that. |