mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-01-31 18:41:39 +00:00
BUG/MEDIUM: fd/threads: fix incorrect thread selection in wakeup broadcast
In commit cfdd20a0b
("MEDIUM: fd: support broadcasting updates for foreign
groups in updt_fd_polling") we decided to pick a random thread number among
a set of candidates for a wakeup in case we need an instant change. But the
thread count range was wrong (MAX_THREADS) instead of tg->count, resulting
in random crashes when thread groups are > 1 and MAX_THREADS > 64.
No backport is needed, this was introduced in 2.7-dev2.
This commit is contained in:
parent
7e94b40a22
commit
c1640f79fe
2
src/fd.c
2
src/fd.c
@ -486,7 +486,7 @@ void updt_fd_polling(const int fd)
|
||||
|
||||
fd_add_to_fd_list(&update_list[tgrp - 1], fd);
|
||||
|
||||
thr = one_among_mask(fdtab[fd].thread_mask & tg->threads_enabled, statistical_prng_range(MAX_THREADS));
|
||||
thr = one_among_mask(fdtab[fd].thread_mask & tg->threads_enabled, statistical_prng_range(tg->count));
|
||||
thr += ha_tgroup_info[tgrp - 1].base;
|
||||
wake_thread(thr);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user