From 3513de5ab46a01961054b291575296337cbf33a4 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Fri, 10 Mar 2023 14:11:58 +0800 Subject: [PATCH] fix(tmq): fix race condition. --- source/client/src/clientTmq.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/source/client/src/clientTmq.c b/source/client/src/clientTmq.c index 3748142b0d..360e1eb569 100644 --- a/source/client/src/clientTmq.c +++ b/source/client/src/clientTmq.c @@ -1446,15 +1446,16 @@ static bool tmqUpdateEp(tmq_t* tmq, int32_t epoch, const SMqAskEpRsp* pRsp) { taosArrayPush(newTopics, &topic); } + taosHashCleanup(pVgOffsetHashMap); + + taosThreadMutexLock(&tmq->lock); // destroy current buffered existed topics info if (tmq->clientTopics) { taosArrayDestroyEx(tmq->clientTopics, freeClientVgInfo); } - taosHashCleanup(pVgOffsetHashMap); - - taosThreadMutexLock(&tmq->lock); tmq->clientTopics = newTopics; + taosThreadMutexUnlock(&tmq->lock); int8_t flag = (topicNumGet == 0)? TMQ_CONSUMER_STATUS__NO_TOPIC:TMQ_CONSUMER_STATUS__READY;