From ead77fe767d9e1140e285939254ceb90332e9de5 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Sun, 7 Apr 2024 10:23:51 +0800 Subject: [PATCH 1/2] fix(tsdb): fix memory leak. --- source/dnode/vnode/src/tsdb/tsdbMergeTree.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/dnode/vnode/src/tsdb/tsdbMergeTree.c b/source/dnode/vnode/src/tsdb/tsdbMergeTree.c index d84d9c2999..e8b1f870c3 100644 --- a/source/dnode/vnode/src/tsdb/tsdbMergeTree.c +++ b/source/dnode/vnode/src/tsdb/tsdbMergeTree.c @@ -75,6 +75,8 @@ void *destroySttBlockLoadInfo(SSttBlockLoadInfo *pLoadInfo) { taosArrayDestroy(pLoadInfo->info.pFirstKey); taosArrayDestroy(pLoadInfo->info.pLastKey); taosArrayDestroy(pLoadInfo->info.pCount); + taosArrayDestroy(pLoadInfo->info.pFirstTs); + taosArrayDestroy(pLoadInfo->info.pLastTs); } taosArrayDestroy(pLoadInfo->aSttBlk); From 3fab74f21b4523bc53d887c5b260a8976d6e4100 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Sun, 7 Apr 2024 10:48:52 +0800 Subject: [PATCH 2/2] fix: TD-29397 --- source/common/src/tdataformat.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/source/common/src/tdataformat.c b/source/common/src/tdataformat.c index 179c1449fe..5d1694ab90 100644 --- a/source/common/src/tdataformat.c +++ b/source/common/src/tdataformat.c @@ -1197,11 +1197,16 @@ void tRowGetKey(SRow *row, SRowKey *key) { for (int32_t i = 0; i < row->numOfPKs; i++) { key->pks[i].type = indices[i].type; + uint8_t *tdata = data + indices[i].offset; + if (row->flag >> 4) { + tdata += tGetI16v(tdata, NULL); + } + if (IS_VAR_DATA_TYPE(indices[i].type)) { - key->pks[i].pData = data + indices[i].offset; + key->pks[i].pData = tdata; key->pks[i].pData += tGetU32v(key->pks[i].pData, &key->pks[i].nData); } else { - memcpy(&key->pks[i].val, data + indices[i].offset, tDataTypes[indices[i].type].bytes); + memcpy(&key->pks[i].val, tdata, tDataTypes[indices[i].type].bytes); } } }