]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: server: Remove RMAINT from admin state when loading server state
authorChristopher Faulet <cfaulet@haproxy.com>
Fri, 12 Feb 2021 16:36:08 +0000 (17:36 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Mon, 15 Feb 2021 10:56:31 +0000 (11:56 +0100)
The RMAINT admin state is dynamic and should be remove from the
srv_admin_state parameter when a server state is loaded from a server-state
file. Otherwise an erorr is reported, the server-state line is ignored and
the server state is not updated.

This patch should fix the issue #576. It must be backported as far as 1.8.

src/server.c

index 36eceb58d3cff819f43b049c802768fff3199dd8..da6ee52ad069f82979317d4f6bd1345e0fd49c57 100644 (file)
@@ -2677,7 +2677,7 @@ static void srv_update_state(struct server *srv, int version, char **params)
                /* inherited statuses will be recomputed later.
                 * Also disable SRV_ADMF_HMAINT flag (set from stats socket fqdn).
                 */
-               srv_admin_state &= ~SRV_ADMF_IDRAIN & ~SRV_ADMF_IMAINT & ~SRV_ADMF_HMAINT;
+               srv_admin_state &= ~SRV_ADMF_IDRAIN & ~SRV_ADMF_IMAINT & ~SRV_ADMF_HMAINT & ~SRV_ADMF_RMAINT;
 
                if ((p == params[2]) || errno == EINVAL || errno == ERANGE ||
                    (srv_admin_state != 0 &&