BUG/MINOR: server: fix down_time report for stats
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Thu, 29 Oct 2020 14:59:05 +0000 (15:59 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Tue, 3 Nov 2020 15:17:32 +0000 (16:17 +0100)
Adjust condition used to report down_time for statistics. There was a
tiny probabilty to have a negative downtime if last_change was superior
to now. If this is the case, return only down_time.

This bug can backported up to 1.8.

(cherry picked from commit e6ba7915ebdfb79d1d74eb402bbc2747c4a1c6dd)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit 36f3e9bb61a06c1afce27474bbc357b52590ec96)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>

src/server.c

index ab03fd3..635c977 100644 (file)
@@ -79,7 +79,7 @@ struct eb_root state_file = EB_ROOT_UNIQUE;
 
 int srv_downtime(const struct server *s)
 {
-       if ((s->cur_state != SRV_ST_STOPPED) && s->last_change < now.tv_sec)            // ignore negative time
+       if ((s->cur_state != SRV_ST_STOPPED) || s->last_change >= now.tv_sec)           // ignore negative time
                return s->down_time;
 
        return now.tv_sec - s->last_change + s->down_time;