From f5a9f8c33897d3c45aa9112d30cba6c33023d7e5 Mon Sep 17 00:00:00 2001 From: wangjiaming0909 <604227650@qq.com> Date: Tue, 7 May 2024 15:15:26 +0800 Subject: [PATCH] fix check ctgCache.pTsmas outside of cache read lock --- source/libs/catalog/src/ctgCache.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/source/libs/catalog/src/ctgCache.c b/source/libs/catalog/src/ctgCache.c index 78905863fe..2be746929f 100644 --- a/source/libs/catalog/src/ctgCache.c +++ b/source/libs/catalog/src/ctgCache.c @@ -3455,11 +3455,13 @@ int32_t ctgDropTSMAForTbEnqueue(SCatalog *pCtg, SName *pName, bool syncOp) { } SCtgTSMACache *pCtgCache = taosHashGet(pDbCache->tsmaCache, pName->tname, strlen(pName->tname)); - if (!pCtgCache || !pCtgCache->pTsmas || pCtgCache->pTsmas->size == 0) { - goto _return; - } + if (!pCtgCache) goto _return; CTG_LOCK(CTG_READ, &pCtgCache->tsmaLock); + if (!pCtgCache->pTsmas || pCtgCache->pTsmas->size == 0) { + CTG_UNLOCK(CTG_READ, &pCtgCache->tsmaLock); + goto _return; + } STSMACache *pCache = taosArrayGetP(pCtgCache->pTsmas, 0); pOp = createDropAllTbTsmaCtgCacheOp(pCtg, pCache, syncOp); if (!pOp) {