From: Willy Tarreau Date: Sun, 17 Oct 2010 15:16:42 +0000 (+0200) Subject: [BUG] checks: don't log backend down for all zero-weight servers X-Git-Tag: v1.5-dev8~440 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d64d225e52e8f400c9e4782c799f2bde7a08c752;p=thirdparty%2Fhaproxy.git [BUG] checks: don't log backend down for all zero-weight servers In a down backend, when a zero-weight server is lost, a new "backend down" message was emitted and the down transition of that backend was wrongly increased. This change ensures that we don't count that transition again. This patch should be backported to 1.3. (cherry picked from commit 60efc5f745b5fa70d811f977727592e47e32a281) --- diff --git a/src/checks.c b/src/checks.c index cd4dd30d91..4132f5e576 100644 --- a/src/checks.c +++ b/src/checks.c @@ -373,6 +373,7 @@ void set_server_down(struct server *s) if (s->health == s->rise || s->tracked) { int srv_was_paused = s->state & SRV_GOINGDOWN; + int prev_srv_count = s->proxy->srv_bck + s->proxy->srv_act; s->last_change = now.tv_sec; s->state &= ~(SRV_RUNNING | SRV_GOINGDOWN); @@ -407,7 +408,7 @@ void set_server_down(struct server *s) else send_log(s->proxy, LOG_ALERT, "%s.\n", trash); - if (s->proxy->srv_bck == 0 && s->proxy->srv_act == 0) + if (prev_srv_count && s->proxy->srv_bck == 0 && s->proxy->srv_act == 0) set_backend_down(s->proxy); s->counters.down_trans++;