BUG/MINOR: listener/mq: do not dispatch connections to remote threads when stopping

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.
This commit is contained in:
Willy Tarreau 2020-03-12 17:33:29 +01:00
parent f8ea00e05e
commit a7da5e8dd0

View 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;