From 0b854dfaf028a8836e3e460738370ef7210f1854 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Wed, 16 Jul 2025 11:29:49 +0200 Subject: [PATCH] BUG/MINOR: applet: Don't trigger BUG_ON if the tid is not on appctx init When an appctx is initialized, there is a BUG_ON() to be sure the appctx is really initialized on the right thread to avoid bugs on the thread affinity. However, it is possible to not choose the thread when the appctx is created and let it starts on any thread. In that case, the thread affinity is set when the appctx is initialized. So, we must take cate to not trigger the BUG_ON() in that case. For now, we never hit the bug because the thread affinity is always set during the appctx creation. This patch must be backport as far as 2.8. (cherry picked from commit 4f7c26cbb33fac44b255c714610191ffad2ec653) Signed-off-by: Amaury Denoyelle (cherry picked from commit be0148c5ccbe5711c201020b1eba2af297acacf6) Signed-off-by: Christopher Faulet --- include/haproxy/applet.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/haproxy/applet.h b/include/haproxy/applet.h index 20f6585..9242a76 100644 --- a/include/haproxy/applet.h +++ b/include/haproxy/applet.h @@ -116,7 +116,7 @@ static inline int appctx_init(struct appctx *appctx) * the appctx will be fully initialized. The session and the stream will * eventually be created. The affinity must be set now ! */ - BUG_ON(appctx->t->tid != tid); + BUG_ON(appctx->t->tid != -1 && appctx->t->tid != tid); task_set_thread(appctx->t, tid); if (appctx->applet->init) -- 1.7.10.4