From d3146a5bec2e89ca4cc30d9e2b5664df3f776f4e Mon Sep 17 00:00:00 2001 From: slzhou Date: Fri, 15 Dec 2023 09:51:06 +0800 Subject: [PATCH] fix: when no file block, no proc mem before fileset --- source/dnode/vnode/src/tsdb/tsdbRead2.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbRead2.c b/source/dnode/vnode/src/tsdb/tsdbRead2.c index ca1ce02210..e1dc226bb9 100644 --- a/source/dnode/vnode/src/tsdb/tsdbRead2.c +++ b/source/dnode/vnode/src/tsdb/tsdbRead2.c @@ -4361,12 +4361,18 @@ static int32_t doTsdbNextDataBlockFilesetDelimited(STsdbReader* pReader) { return code; } - if (pStatus->bProcMemPreFileset && pBlock->info.rows > 0) { - pStatus->pNextFilesetBlock = createOneDataBlock(pBlock, true); - blockDataCleanup(pBlock); - code = buildFromPreFilesetBuffer(pReader); - if (code != TSDB_CODE_SUCCESS || pBlock->info.rows > 0) { - return code; + tsdbTrace("block from file rows: %"PRId64", will process pre-file set buffer: %d. %s", + pBlock->info.rows, pStatus->bProcMemFirstFileset, pReader->idStr); + if (pStatus->bProcMemPreFileset) { + if ( pBlock->info.rows > 0) { + pStatus->pNextFilesetBlock = createOneDataBlock(pBlock, true); + blockDataCleanup(pBlock); + code = buildFromPreFilesetBuffer(pReader); + if (code != TSDB_CODE_SUCCESS || pBlock->info.rows > 0) { + return code; + } + } else { + pStatus->bProcMemPreFileset = false; } }