mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-21 22:01:31 +02:00
BUG/MINOR: server: incorrect report for tracking servers leaving drain
Report message for tracking servers completely leaving drain is wrong: The check for "leaving drain .. via" never evaluates because the condition !(s->next_admin & SRV_ADMF_FDRAIN) is always true in the current block which is guarded by !(s->next_admin & SRV_ADMF_DRAIN). For tracking servers that leave inherited drain mode, this results in the following message being emitted: "Server x/b is UP (leaving forced drain)" Instead of: "Server x/b is UP (leaving drain) via x/a" To this fix: we check if FDRAIN is currently set, else it means that the drain status is inherited from the tracked server (IDRAIN) This regression was introduced with 64cc49cf ("MAJOR: servers: propagate server status changes asynchronously."), thus it may be backported to every stable versions.
This commit is contained in:
parent
2dac67af7d
commit
9a1df02ccb
@ -5757,7 +5757,7 @@ static void srv_update_status(struct server *s)
|
|||||||
|
|
||||||
tmptrash = alloc_trash_chunk();
|
tmptrash = alloc_trash_chunk();
|
||||||
if (tmptrash) {
|
if (tmptrash) {
|
||||||
if (!(s->next_admin & SRV_ADMF_FDRAIN)) {
|
if (s->cur_admin & SRV_ADMF_FDRAIN) {
|
||||||
chunk_printf(tmptrash,
|
chunk_printf(tmptrash,
|
||||||
"%sServer %s/%s is %s (leaving forced drain)",
|
"%sServer %s/%s is %s (leaving forced drain)",
|
||||||
s->flags & SRV_F_BACKUP ? "Backup " : "",
|
s->flags & SRV_F_BACKUP ? "Backup " : "",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user