MINOR: server: central update for server counters on state change
authorAurelien DARRAGON <adarragon@haproxy.com>
Wed, 19 Apr 2023 16:22:21 +0000 (18:22 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Fri, 21 Apr 2023 12:36:45 +0000 (14:36 +0200)
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.

src/server.c

index 65f24d1..457a429 100644 (file)
@@ -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;
        }