From 5aa0f80c913d78a1ea6a538c5097e14f5a2c4ef0 Mon Sep 17 00:00:00 2001 From: Liu Jicong Date: Fri, 28 Jan 2022 19:29:18 +0800 Subject: [PATCH] fix mem leak --- include/common/common.h | 12 +++++++----- source/dnode/vnode/src/tq/tq.c | 12 +++++++----- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/include/common/common.h b/include/common/common.h index 16a691c338..bad9adedf5 100644 --- a/include/common/common.h +++ b/include/common/common.h @@ -188,7 +188,7 @@ static FORCE_INLINE void tDeleteSSDataBlock(SSDataBlock* pBlock) { taosArrayDestroy(pBlock->pDataBlock); tfree(pBlock->pBlockAgg); - tfree(pBlock); + //tfree(pBlock); } @@ -199,10 +199,12 @@ static FORCE_INLINE void tDeleteSMqConsumeRsp(SMqConsumeRsp* pRsp) { } free(pRsp->schemas); } - for (int i = 0; i < taosArrayGetSize(pRsp->pBlockData); i++) { - SSDataBlock* pDataBlock = (SSDataBlock*)taosArrayGet(pRsp->pBlockData, i); - tDeleteSSDataBlock(pDataBlock); - } + taosArrayDestroyEx(pRsp->pBlockData, (void(*)(void*))tDeleteSSDataBlock); + pRsp->pBlockData = NULL; + //for (int i = 0; i < taosArrayGetSize(pRsp->pBlockData); i++) { + //SSDataBlock* pDataBlock = (SSDataBlock*)taosArrayGet(pRsp->pBlockData, i); + //tDeleteSSDataBlock(pDataBlock); + //} } //====================================================================================================================== diff --git a/source/dnode/vnode/src/tq/tq.c b/source/dnode/vnode/src/tq/tq.c index 7299710586..139120a46d 100644 --- a/source/dnode/vnode/src/tq/tq.c +++ b/source/dnode/vnode/src/tq/tq.c @@ -786,11 +786,13 @@ int32_t tqProcessConsumeReq(STQ* pTq, SRpcMsg* pMsg) { void* abuf = buf; tEncodeSMqConsumeRsp(&abuf, &rsp); if (rsp.pBlockData) { - for (int i = 0; i < taosArrayGetSize(rsp.pBlockData); i++) { - SSDataBlock* pBlock = taosArrayGet(rsp.pBlockData, i); - tDeleteSSDataBlock(pBlock); - } - free(rsp.pBlockData); + taosArrayDestroyEx(rsp.pBlockData, (void(*)(void*))tDeleteSSDataBlock); + rsp.pBlockData = NULL; + /*for (int i = 0; i < taosArrayGetSize(rsp.pBlockData); i++) {*/ + /*SSDataBlock* pBlock = taosArrayGet(rsp.pBlockData, i);*/ + /*tDeleteSSDataBlock(pBlock);*/ + /*}*/ + /*taosArrayDestroy(rsp.pBlockData);*/ } pMsg->pCont = buf; pMsg->contLen = tlen; -- GitLab