]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: listener/mq: do not dispatch connections to remote threads when stopping
authorWilly Tarreau <w@1wt.eu>
Thu, 12 Mar 2020 16:33:29 +0000 (17:33 +0100)
committerWilly Tarreau <w@1wt.eu>
Thu, 12 Mar 2020 18:10:29 +0000 (19:10 +0100)
When stopping there is a risk that other threads are already in the
process of stopping, so let's not add new work in their queue and
instead keep the incoming connection local.

This should be backported to 2.1 and 2.0.

src/listener.c

index e9a4bee1a47cf149d4417271dcf88f7b2a220a2a..ceb52af0d562ee5770708d77ad21a4f00a1a9f70 100644 (file)
@@ -896,7 +896,7 @@ void listener_accept(int fd)
 
 #if defined(USE_THREAD)
                mask = thread_mask(l->bind_conf->bind_thread) & all_threads_mask;
-               if (atleast2(mask) && (global.tune.options & GTUNE_LISTENER_MQ)) {
+               if (atleast2(mask) && (global.tune.options & GTUNE_LISTENER_MQ) && !stopping) {
                        struct accept_queue_ring *ring;
                        unsigned int t, t0, t1, t2;