From 66ad2185e9ef5f7f9d015ce99033e9b8d6f4d200 Mon Sep 17 00:00:00 2001 From: wangjiaming0909 <604227650@qq.com> Date: Thu, 19 Sep 2024 13:29:20 +0800 Subject: [PATCH] fix query auto qworker possibly blocking caused by failed to add worker --- source/util/src/tworker.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/util/src/tworker.c b/source/util/src/tworker.c index a1d2d8e38c..c2757dcabc 100644 --- a/source/util/src/tworker.c +++ b/source/util/src/tworker.c @@ -714,7 +714,6 @@ static bool tQueryAutoQWorkerTryDecActive(void *p, int32_t minActive) { if (atomicCompareExchangeActiveAndRunning(&pPool->activeRunningN, &active, active - 1, &running, running - 1)) return true; } - (void)atomicFetchSubRunning(&pPool->activeRunningN, 1); return false; } @@ -784,6 +783,7 @@ bool tQueryAutoQWorkerTryRecycleWorker(SQueryAutoQWorkerPool *pPool, SQueryAutoQ return true; } else { + (void)atomicFetchSubRunning(&pPool->activeRunningN, 1); return true; } } @@ -978,7 +978,6 @@ static int32_t tQueryAutoQWorkerAddWorker(SQueryAutoQWorkerPool *pool) { SListNode *pNode = tdListAdd(pool->workers, &worker); if (!pNode) { (void)taosThreadMutexUnlock(&pool->poolLock); - terrno = TSDB_CODE_OUT_OF_MEMORY; return terrno; } (void)taosThreadMutexUnlock(&pool->poolLock); @@ -1006,6 +1005,7 @@ static int32_t tQueryAutoQWorkerBeforeBlocking(void *p) { if (code != TSDB_CODE_SUCCESS) { return code; } + (void)atomicFetchSubRunning(&pPool->activeRunningN, 1); } return TSDB_CODE_SUCCESS;