fix: fix mem leak of block data buf

This commit is contained in:
slzhou 2023-12-08 21:49:36 +08:00
parent 6acbbc3cff
commit 205e3ecf27
1 changed files with 5 additions and 2 deletions

View File

@ -3233,16 +3233,17 @@ static int32_t saveSourceBlock(STmsSortRowIdInfo* pSortInfo, const SSDataBlock*
return TSDB_CODE_OUT_OF_MEMORY; return TSDB_CODE_OUT_OF_MEMORY;
} }
blockDataToBuf(buf, pSrcBlock); blockDataToBuf(buf, pSrcBlock);
*pSzBlk = szBlk;
taosLSeekFile(pSortInfo->dataFile, pSortInfo->dataFileOffset, SEEK_SET); taosLSeekFile(pSortInfo->dataFile, pSortInfo->dataFileOffset, SEEK_SET);
taosWriteFile(pSortInfo->dataFile, buf, szBlk); taosWriteFile(pSortInfo->dataFile, buf, szBlk);
taosMemoryFree(buf);
STmsSortBlockInfo info = {.blkId = pSortInfo->blkId STmsSortBlockInfo info = {.blkId = pSortInfo->blkId
, .offset = pSortInfo->dataFileOffset, .length = szBlk}; , .offset = pSortInfo->dataFileOffset, .length = szBlk};
taosLSeekFile(pSortInfo->idxFile, pSortInfo->blkId*sizeof(STmsSortBlockInfo), SEEK_SET); taosLSeekFile(pSortInfo->idxFile, pSortInfo->blkId*sizeof(STmsSortBlockInfo), SEEK_SET);
taosWriteFile(pSortInfo->idxFile, &info, sizeof(info)); taosWriteFile(pSortInfo->idxFile, &info, sizeof(info));
*pSzBlk = szBlk;
return 0; return 0;
} }
@ -3322,6 +3323,8 @@ static int32_t retrieveSourceBlock(STableMergeScanInfo* pInfo, int32_t blockId,
taosReadFile(pSortInfo->dataFile, buf, blkInfo->length); taosReadFile(pSortInfo->dataFile, buf, blkInfo->length);
SSDataBlock* pBlock = createOneDataBlock(pInfo->pReaderBlock, false); SSDataBlock* pBlock = createOneDataBlock(pInfo->pReaderBlock, false);
blockDataFromBuf(pBlock, buf); blockDataFromBuf(pBlock, buf);
taosMemoryFree(buf);
*ppBlock = pBlock; *ppBlock = pBlock;
taosLRUCacheInsert(pSortInfo->pBlkDataCache, &blockId, sizeof(blockId), pBlock, 1, deleteBlockDataCache, taosLRUCacheInsert(pSortInfo->pBlkDataCache, &blockId, sizeof(blockId), pBlock, 1, deleteBlockDataCache,