Merge pull request #25658 from taosdata/fix/3.0/TD-29931

fix check ctgCache.pTsmas outside of cache read lock
This commit is contained in:
dapan1121 2024-05-08 18:51:23 +08:00 committed by GitHub
commit a221813f55
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 5 additions and 3 deletions

View File

@ -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) {