Merge pull request #27561 from taosdata/fix/TD-31797-3.0
fix(query)[TD-31797]: Cleanup iterator on fileblock brininfo load failure
This commit is contained in:
commit
dad85d0cde
|
@ -723,6 +723,7 @@ static int32_t loadFileBlockBrinInfo(STsdbReader* pReader, SArray* pIndexList, S
|
||||||
while (1) {
|
while (1) {
|
||||||
int32_t code = getNextBrinRecord(&iter, &pRecord);
|
int32_t code = getNextBrinRecord(&iter, &pRecord);
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
|
clearBrinBlockIter(&iter);
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -757,12 +758,14 @@ static int32_t loadFileBlockBrinInfo(STsdbReader* pReader, SArray* pIndexList, S
|
||||||
|
|
||||||
if (!(pRecord->suid == pReader->info.suid && uid == pRecord->uid)) {
|
if (!(pRecord->suid == pReader->info.suid && uid == pRecord->uid)) {
|
||||||
tsdbError("tsdb failed at: %s:%d", __func__, __LINE__);
|
tsdbError("tsdb failed at: %s:%d", __func__, __LINE__);
|
||||||
|
clearBrinBlockIter(&iter);
|
||||||
return TSDB_CODE_INTERNAL_ERROR;
|
return TSDB_CODE_INTERNAL_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
STableBlockScanInfo* pScanInfo = NULL;
|
STableBlockScanInfo* pScanInfo = NULL;
|
||||||
code = getTableBlockScanInfo(pReader->status.pTableMap, uid, &pScanInfo, pReader->idStr);
|
code = getTableBlockScanInfo(pReader->status.pTableMap, uid, &pScanInfo, pReader->idStr);
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
|
clearBrinBlockIter(&iter);
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -807,6 +810,7 @@ static int32_t loadFileBlockBrinInfo(STsdbReader* pReader, SArray* pIndexList, S
|
||||||
if (pScanInfo->pBlockList == NULL) {
|
if (pScanInfo->pBlockList == NULL) {
|
||||||
pScanInfo->pBlockList = taosArrayInit(4, sizeof(SFileDataBlockInfo));
|
pScanInfo->pBlockList = taosArrayInit(4, sizeof(SFileDataBlockInfo));
|
||||||
if (pScanInfo->pBlockList == NULL) {
|
if (pScanInfo->pBlockList == NULL) {
|
||||||
|
clearBrinBlockIter(&iter);
|
||||||
return TSDB_CODE_OUT_OF_MEMORY;
|
return TSDB_CODE_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -814,6 +818,7 @@ static int32_t loadFileBlockBrinInfo(STsdbReader* pReader, SArray* pIndexList, S
|
||||||
if (pScanInfo->pBlockIdxList == NULL) {
|
if (pScanInfo->pBlockIdxList == NULL) {
|
||||||
pScanInfo->pBlockIdxList = taosArrayInit(4, sizeof(STableDataBlockIdx));
|
pScanInfo->pBlockIdxList = taosArrayInit(4, sizeof(STableDataBlockIdx));
|
||||||
if (pScanInfo->pBlockIdxList == NULL) {
|
if (pScanInfo->pBlockIdxList == NULL) {
|
||||||
|
clearBrinBlockIter(&iter);
|
||||||
return TSDB_CODE_OUT_OF_MEMORY;
|
return TSDB_CODE_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -822,6 +827,7 @@ static int32_t loadFileBlockBrinInfo(STsdbReader* pReader, SArray* pIndexList, S
|
||||||
recordToBlockInfo(&blockInfo, pRecord);
|
recordToBlockInfo(&blockInfo, pRecord);
|
||||||
void* p1 = taosArrayPush(pScanInfo->pBlockList, &blockInfo);
|
void* p1 = taosArrayPush(pScanInfo->pBlockList, &blockInfo);
|
||||||
if (p1 == NULL) {
|
if (p1 == NULL) {
|
||||||
|
clearBrinBlockIter(&iter);
|
||||||
return TSDB_CODE_OUT_OF_MEMORY;
|
return TSDB_CODE_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -840,6 +846,7 @@ static int32_t loadFileBlockBrinInfo(STsdbReader* pReader, SArray* pIndexList, S
|
||||||
} else {
|
} else {
|
||||||
STableBlockScanInfo** p = taosArrayGetLast(pTableScanInfoList);
|
STableBlockScanInfo** p = taosArrayGetLast(pTableScanInfoList);
|
||||||
if (p == NULL) {
|
if (p == NULL) {
|
||||||
|
clearBrinBlockIter(&iter);
|
||||||
return TSDB_CODE_INVALID_PARA;
|
return TSDB_CODE_INVALID_PARA;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -849,6 +856,7 @@ static int32_t loadFileBlockBrinInfo(STsdbReader* pReader, SArray* pIndexList, S
|
||||||
}
|
}
|
||||||
|
|
||||||
if (p1 == NULL) {
|
if (p1 == NULL) {
|
||||||
|
clearBrinBlockIter(&iter);
|
||||||
return TSDB_CODE_OUT_OF_MEMORY;
|
return TSDB_CODE_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue