From dc78cf32cbbaed754e5a72676b3f6890a4b58286 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Thu, 27 Jun 2024 14:27:15 +0800 Subject: [PATCH] fix(tsdb):check the result of the binary search for the end position in data file block. --- source/dnode/vnode/src/tsdb/tsdbRead2.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/dnode/vnode/src/tsdb/tsdbRead2.c b/source/dnode/vnode/src/tsdb/tsdbRead2.c index c6f13bc0a8..07df65fe7e 100644 --- a/source/dnode/vnode/src/tsdb/tsdbRead2.c +++ b/source/dnode/vnode/src/tsdb/tsdbRead2.c @@ -927,6 +927,10 @@ static int32_t getEndPosInDataBlock(STsdbReader* pReader, SBlockData* pBlockData } else { int64_t key = asc ? pReader->info.window.ekey : pReader->info.window.skey; endPos = doBinarySearchKey(pBlockData->aTSKEY, pRecord->numRow, pos, key, pReader->info.order); + if (endPos == -1) { + return endPos; + } + endPos = findFirstPos(pBlockData->aTSKEY, pRecord->numRow, endPos, asc); }