BUG/MEDIUM: master/cli: Properly pin the master CLI on thread 1 / group 1
A previous fix was pushed for that (13fb7170be "BUG/MEDIUM: master/cli: Pin
the master CLI on the first thread of the group 1" ). Unfortunately, instead
of the master CLI, it is the sockpairs between the master and the workers
that were pinned to the first thread of the group 1. So the crash is still
there.
So, again, to fix the bug the master CLI is now pinned on the first thread
of the first group.
patch should fix the issue #2259 and must be backported to 2.8.
(cherry picked from commit a053512a7f48d74f5d69daa0f9918ecfcecc0122)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
diff --git a/src/cli.c b/src/cli.c
index 0a78ed7..0f572a1 100644
--- a/src/cli.c
+++ b/src/cli.c
@@ -3179,6 +3179,9 @@
bind_conf->nice = -64; /* we want to boost priority for local stats */
bind_conf->options |= BC_O_UNLIMITED; /* don't make the peers subject to global limits */
+ /* Pin master CLI on the first thread of the first group only */
+ thread_set_pin_grp1(&bind_conf->thread_set, 1);
+
list_for_each_entry(l, &bind_conf->listeners, by_bind) {
l->rx.flags |= RX_F_MWORKER; /* we are keeping this FD in the master */
global.maxsock++; /* for the listening socket */