From: Olivier Houchard Date: Sat, 9 May 2026 17:27:12 +0000 (+0200) Subject: BUG/MEDIUM: servers: Only requeue servers if they are up X-Git-Url: http://www.kaiwu.me/postgresql/commit/?a=commitdiff_plain;h=2a1599297b87331ad67a8fbf37310dde1b90bd30;p=haproxy.git BUG/MEDIUM: servers: Only requeue servers if they are up In init_srv_requeue(), only attempt to run the tasklet if the server is actually running, otherwise it will end up being queued a second time, when the server is actually brought up, and that will lead to a corrupted mt_list. This can easily be reproduced by adding a dynamic server, as those start disabled, and then enabling and disabling it a couple of times. This should fix github issue #3360. This should be backported up to 3.2. --- diff --git a/src/server.c b/src/server.c index 8e49f79cf..ebc8ec210 100644 --- a/src/server.c +++ b/src/server.c @@ -6050,7 +6050,8 @@ static int init_srv_requeue(struct server *srv) * failed to queue itself when brought up, which could happen if * a memory allocation failed. */ - tasklet_wakeup(t); + if (srv->cur_state != SRV_ST_STOPPED) + tasklet_wakeup(t); return ERR_NONE; }