Bug #1485
mod_proxy_core.c: double load decrement
| Status: | New | Start: | ||
| Priority: | Normal | Due date: | ||
| Assigned to: | jan | % Done: | 0% |
|
| Category: | mod_proxy_core | |||
| Target version: | 1.5.0 | |||
| Pending: | No |
Resolution: | ||
Description
As I tried finding out when to decrement load, I found the following
line:
COUNTER_DEC(sess->proxy_backend->load);
in proxy_remove_backend_connection(...) and proxy_recycle_backend_connection(...).
Both only check for sess / sess->proxy_con and then decrement in every
case; but proxy_recycle_backend_connection calls
proxy_remove_backend_connection if it does not keep-alive, so in this
case load gets decremented twice.
Both set sess->proxy to NULL, so it does not happen again.
COUNTER_DEC decrements only if it not 0, so nothing seriously bad
happens.
Proposed change: Execute COUNTER_DEC in recycle only when remove gets not called (see patch).