From: Aurelien DARRAGON Date: Wed, 19 Apr 2023 16:22:21 +0000 (+0200) Subject: MINOR: server: central update for server counters on state change X-Git-Tag: v2.8-dev8~54 X-Git-Url: http://git.haproxy.org/?a=commitdiff_plain;h=5f80f8bbc5ae051e5ef7964bd8704ee0d6d20806;p=haproxy-3.0.git MINOR: server: central update for server counters on state change Based on "BUG/MINOR: server: don't miss server stats update on server state transitions", we're also taking advantage of the new centralized logic to update down_trans server counter directly from there instead of multiple places. --- diff --git a/src/server.c b/src/server.c index 65f24d1..457a429 100644 --- a/src/server.c +++ b/src/server.c @@ -5335,7 +5335,6 @@ static void srv_update_status(struct server *s) free_trash_chunk(tmptrash); tmptrash = NULL; } - s->counters.down_trans++; } else if ((s->cur_state != SRV_ST_STOPPING) && (s->next_state == SRV_ST_STOPPING)) { if (s->proxy->lbprm.set_server_status_down) @@ -5503,7 +5502,6 @@ static void srv_update_status(struct server *s) free_trash_chunk(tmptrash); tmptrash = NULL; } - s->counters.down_trans++; } } else if ((s->cur_admin & SRV_ADMF_MAINT) && !(s->next_admin & SRV_ADMF_MAINT)) { @@ -5788,6 +5786,10 @@ static void srv_update_status(struct server *s) if (s->last_change < now.tv_sec) // ignore negative times s->down_time += now.tv_sec - s->last_change; } + else if (s->cur_state == SRV_ST_STOPPED) { + /* server was up and is currently down */ + s->counters.down_trans++; + } s->last_change = now.tv_sec; }