mirror of
https://github.com/haproxy/haproxy.git
synced 2026-04-15 21:59:41 -04:00
BUG/MEDIUM: listener: make sure we don't pick stopped threads
Dragan Dosen reported that after the multi-queue changes, appending "process 1/even" on a bind line can make the process immediately crash when delivering a first connection. This is due to the fact that I believed that thread_mask(mask) applied the all_threads_mask value, but it doesn't. And in case of even/odd the bits cover more than the available threads, resulting in too high a thread number being selected and a non-existing task to be woken up. No backport is needed.
This commit is contained in:
parent
b0cef35b09
commit
897e2c58e6
1 changed files with 1 additions and 1 deletions
|
|
@ -845,7 +845,7 @@ void listener_accept(int fd)
|
|||
next_actconn = 0;
|
||||
|
||||
#if defined(USE_THREAD)
|
||||
mask = thread_mask(l->bind_conf->bind_thread);
|
||||
mask = thread_mask(l->bind_conf->bind_thread) & all_threads_mask;
|
||||
if (atleast2(mask) && (global.tune.options & GTUNE_LISTENER_MQ)) {
|
||||
struct accept_queue_ring *ring;
|
||||
unsigned int t, t0, t1, t2;
|
||||
|
|
|
|||
Loading…
Reference in a new issue