tree 27877b73e069ba64726b5991983713ea668bc3a4
parent 674ba6776a167e5c7ba455bca738dac0546bb2bf
author Aurelien DARRAGON <adarragon@haproxy.com> 1681738211 +0200
committer Christopher Faulet <cfaulet@haproxy.com> 1685089592 +0200

BUG/MINOR: server: don't miss proxy stats update on server state transitions

backend "down" stats logic has been duplicated multiple times in
srv_update_status(), resulting in the logic now being error-prone.

For example, the following bugfix was needed to compensate for a
copy-paste introduced bug: d332f139
("BUG/MINOR: server: update last_change on maint->ready transitions too")

While the above patch works great, we actually forgot to update the
proxy downtime like it is done for other down->up transitions...
This is simply illustrating that the current design is error-prone,
it is very easy to miss something in this area.

To properly update the proxy downtime stats on the maint->ready transition,
to cleanup srv_update_status() and to prevent similar bugs from being
introduced in the future, proxy/backend stats update are now automatically
performed at the end of the server state change if needed.

Thus we can remove existing updates that were performed at various places
within the function, this simplifies things a bit.

This patch depends on:
- "MINOR: server: explicitly commit state change in srv_update_status()"

This could be backported to all stable versions.

Backport notes:

2.2:

Replace
        struct task *srv_cleanup_toremove_conns(struct task *task, void *context, unsigned int state)

by
        struct task *srv_cleanup_toremove_connections(struct task *task, void *context, unsigned short state)

(cherry picked from commit e80ddb18a8bba52649896b8f894bf91ef8e53ca6)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit 36306b2d6c6bb99c3c6d84cc0ad797aece381a4e)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit 8fb6c73786080f29d04545256d08b33dfbfe5268)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
