fix: mutex init issue

This commit is contained in:
dapan1121 2023-08-07 11:22:25 +08:00
parent b7126b9cc6
commit da27a306db
1 changed files with 19 additions and 19 deletions

View File

@ -676,10 +676,6 @@ static int32_t addNewGroupData(struct SOperatorInfo* pOperator, SOperatorParam*
SGcOperatorParam* pGcParam = pParam->value; SGcOperatorParam* pGcParam = pParam->value;
SHashObj* pGrpHash = pGCache->globalGrp ? pGCache->pGrpHash : pCtx->pGrpHash; SHashObj* pGrpHash = pGCache->globalGrp ? pGCache->pGrpHash : pCtx->pGrpHash;
SGroupCacheData grpData = {0}; SGroupCacheData grpData = {0};
initNewGroupData(pCtx, &grpData, pParam->downstreamIdx, vgId, pGCache->batchFetch, pGcParam->needCache);
qError("new group %" PRIu64 " initialized, downstreamIdx:%d, vgId:%d, needCache:%d", uid, pParam->downstreamIdx, vgId, pGcParam->needCache);
while (true) { while (true) {
if (0 != taosHashPut(pGrpHash, &uid, sizeof(uid), &grpData, sizeof(grpData))) { if (0 != taosHashPut(pGrpHash, &uid, sizeof(uid), &grpData, sizeof(grpData))) {
@ -693,23 +689,27 @@ static int32_t addNewGroupData(struct SOperatorInfo* pOperator, SOperatorParam*
} }
} }
*ppGrp = taosHashGet(pGrpHash, &uid, sizeof(uid)); break;
if (*ppGrp && pParam->pChildren) { }
SGcNewGroupInfo newGroup;
newGroup.pGroup = *ppGrp; *ppGrp = taosHashGet(pGrpHash, &uid, sizeof(uid));
newGroup.vgId = vgId; initNewGroupData(pCtx, *ppGrp, pParam->downstreamIdx, vgId, pGCache->batchFetch, pGcParam->needCache);
newGroup.uid = uid;
newGroup.pParam = taosArrayGetP(pParam->pChildren, 0); qError("new group %" PRIu64 " initialized, downstreamIdx:%d, vgId:%d, needCache:%d", uid, pParam->downstreamIdx, vgId, pGcParam->needCache);
taosWLockLatch(&pCtx->grpLock); if (pParam->pChildren) {
if (NULL == taosArrayPush(pCtx->pNewGrpList, &newGroup)) { SGcNewGroupInfo newGroup;
taosWUnLockLatch(&pCtx->grpLock); newGroup.pGroup = *ppGrp;
return TSDB_CODE_OUT_OF_MEMORY; newGroup.vgId = vgId;
} newGroup.uid = uid;
newGroup.pParam = taosArrayGetP(pParam->pChildren, 0);
taosWLockLatch(&pCtx->grpLock);
if (NULL == taosArrayPush(pCtx->pNewGrpList, &newGroup)) {
taosWUnLockLatch(&pCtx->grpLock); taosWUnLockLatch(&pCtx->grpLock);
return TSDB_CODE_OUT_OF_MEMORY;
break;
} }
taosWUnLockLatch(&pCtx->grpLock);
} }
return TSDB_CODE_SUCCESS; return TSDB_CODE_SUCCESS;