From d64d225e52e8f400c9e4782c799f2bde7a08c752 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Sun, 17 Oct 2010 17:16:42 +0200 Subject: [PATCH] [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) --- src/checks.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/checks.c b/src/checks.c index cd4dd30d9..4132f5e57 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++;