BUG/MEDIUM: proxy: properly stop backends
The proxy stopping mechanism was changed with commit 322b9b94e ("MEDIUM:
proxy: make stop_proxy() now use stop_listener()") so that it's now
entirely driven by the listeners. One thing was forgotten though, which
is that pure backends will not stop anymore since they don't have any
listener, and that it's necessary to stop them in order to stop the
health checks.
No backport is needed.
diff --git a/src/proxy.c b/src/proxy.c
index 43c2362..790d4d0 100644
--- a/src/proxy.c
+++ b/src/proxy.c
@@ -1315,6 +1315,11 @@
list_for_each_entry(l, &p->conf.listeners, by_fe)
stop_listener(l, 1, 0, 0);
+ if (!p->disabled && !p->li_ready) {
+ /* might be just a backend */
+ p->disabled = 1;
+ }
+
HA_SPIN_UNLOCK(PROXY_LOCK, &p->lock);
}