BUG/MINOR: peers: crash on reload without local peer.
When we configure a "peers" section without local peer, this makes haproxy
old process crash on reload.
Such a configuration file allows to reproduce this issue:
global
stats socket /tmp/sock1 mode 666 level admin
stats timeout 10s
peers peers
peer localhost 127.0.0.1:1024
This bug was introduced by this commit:
"MINOR: cfgparse: Make "peer" lines be parsed as "server" lines"
This commit introduced a new condition to detect a "peers" section without
local peer. This is a "peers" section with a frontend struct which has no ->id
initialized member. Such a "peers" section must be removed.
This patch adds this new condition to remove such peers sections without local
peer as this was always done before.
Must be backported to 2.0.
diff --git a/src/cfgparse.c b/src/cfgparse.c
index 6cbcac4..05a64a8 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -3903,7 +3903,7 @@
stop_proxy(curpeers->peers_fe);
curpeers->peers_fe = NULL;
}
- else if (!curpeers->peers_fe) {
+ else if (!curpeers->peers_fe || !curpeers->peers_fe->id) {
ha_warning("Removing incomplete section 'peers %s' (no peer named '%s').\n",
curpeers->id, localpeer);
}