From: Willy Tarreau Date: Fri, 16 Oct 2020 13:10:11 +0000 (+0200) Subject: BUG/MEDIUM: proxy: properly stop backends X-Git-Tag: v2.3-dev7~13 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ba29687bc1;p=thirdparty%2Fhaproxy.git 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 43c2362285..790d4d0802 100644 --- a/src/proxy.c +++ b/src/proxy.c @@ -1315,6 +1315,11 @@ void stop_proxy(struct proxy *p) 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); }