From 4f5892635215386363e2f717cee2a8b71b69244c Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Thu, 2 Jul 2020 17:17:42 +0200 Subject: [PATCH] BUG/MAJOR: sched: make it work also when not building with DEBUG_STRICT Sadly, the fix from commit 54d31170a ("BUG/MAJOR: sched: make sure task_kill() always queues the task") broke the builds without DEBUG_STRICT as, in order to be careful, it plcaed a BUG_ON() around the previously failing condition to check for any new possible failure, but this BUG_ON strips the condition when DEBUG_STRICT is not set. We don't want BUG_ON to evaluate any condition either as some debugging code calls possibly expensive ones (e.g. in htx_get_stline). Let's just drop the useless BUG_ON(). No backport is needed, this is 2.2-dev. --- src/task.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/task.c b/src/task.c index 7ce1cd2a37..72f09de30d 100644 --- a/src/task.c +++ b/src/task.c @@ -97,8 +97,8 @@ void task_kill(struct task *t) /* Beware: tasks that have never run don't have their ->list empty yet! */ LIST_INIT(&((struct tasklet *)t)->list); - BUG_ON(!MT_LIST_ADDQ(&task_per_thread[thr].shared_tasklet_list, - (struct mt_list *)&((struct tasklet *)t)->list)); + MT_LIST_ADDQ(&task_per_thread[thr].shared_tasklet_list, + (struct mt_list *)&((struct tasklet *)t)->list); _HA_ATOMIC_ADD(&tasks_run_queue, 1); _HA_ATOMIC_ADD(&task_per_thread[thr].task_list_size, 1); if (sleeping_thread_mask & (1UL << thr)) { -- 2.47.3