From 04012ae816c4ed4afe8079afa36464599c2f55d1 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Tue, 18 Nov 2025 15:06:51 +0100 Subject: [PATCH] WIP/MEDIUM: stick-tables: Don't get update lock if session is not in the update tree --- src/stick_table.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/stick_table.c b/src/stick_table.c index 12d269068..d32b49d49 100644 --- a/src/stick_table.c +++ b/src/stick_table.c @@ -376,7 +376,7 @@ int stktable_trash_oldest(struct stktable *t) * with that lock held, will grab a ref_cnt before releasing the * lock. So we must take this lock as well and check the ref_cnt. */ - if (!updt_locked) { + if (!updt_locked && ts->upd.node.leaf_p) { updt_locked = 1; HA_RWLOCK_WRLOCK(STK_TABLE_UPDT_LOCK, &t->updt_lock); } @@ -1063,7 +1063,7 @@ struct task *process_tables_expire(struct task *task, void *context, unsigned in * with that lock held, will grab a ref_cnt before releasing the * lock. So we must take this lock as well and check the ref_cnt. */ - if (!updt_locked) { + if (!updt_locked && ts->upd.node.leaf_p) { updt_locked = 1; HA_RWLOCK_WRLOCK(STK_TABLE_UPDT_LOCK, &t->updt_lock); } -- 2.47.3