From 0c2273daf2aa66e4b5174116cd4a367803d25551 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Wed, 21 Jun 2023 19:38:25 +0800 Subject: [PATCH] fix(tsdb): fix memory leak. --- source/dnode/vnode/src/tsdb/tsdbMergeTree.c | 8 ++++++++ source/dnode/vnode/src/tsdb/tsdbRead2.c | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbMergeTree.c b/source/dnode/vnode/src/tsdb/tsdbMergeTree.c index 918f2763b1..7301338438 100644 --- a/source/dnode/vnode/src/tsdb/tsdbMergeTree.c +++ b/source/dnode/vnode/src/tsdb/tsdbMergeTree.c @@ -75,6 +75,12 @@ void getLastBlockLoadInfo(SSttBlockLoadInfo *pLoadInfo, int64_t *blocks, double } } +static void freeTombBlock(void* param) { + STombBlock** pTombBlock = (STombBlock**) param; + tTombBlockDestroy(*pTombBlock); + taosMemoryFree(*pTombBlock); +} + void *destroyLastBlockLoadInfo(SSttBlockLoadInfo *pLoadInfo) { if (pLoadInfo == NULL) { return NULL; @@ -91,6 +97,8 @@ void *destroyLastBlockLoadInfo(SSttBlockLoadInfo *pLoadInfo) { taosArrayDestroy(pLoadInfo[i].aSttBlk); } + taosArrayDestroyEx(pLoadInfo->pTombBlockArray, freeTombBlock); + taosMemoryFree(pLoadInfo); return NULL; } diff --git a/source/dnode/vnode/src/tsdb/tsdbRead2.c b/source/dnode/vnode/src/tsdb/tsdbRead2.c index 71922e82cc..ab0ff0d8ec 100644 --- a/source/dnode/vnode/src/tsdb/tsdbRead2.c +++ b/source/dnode/vnode/src/tsdb/tsdbRead2.c @@ -566,7 +566,7 @@ static int32_t initFilesetIterator(SFilesetIter* pIter, TFileSetArray* pFileSetA if (pLReader->pInfo == NULL) { // here we ignore the first column, which is always be the primary timestamp column SBlockLoadSuppInfo* pInfo = &pReader->suppInfo; - + // todo dynamic number of stt int32_t numOfStt = pReader->pTsdb->pVnode->config.sttTrigger; pLReader->pInfo = tCreateLastBlockLoadInfo(pReader->pSchema, &pInfo->colId[1], pInfo->numOfCols - 1, numOfStt); if (pLReader->pInfo == NULL) {