From b5661752aa2b9e0d7ecc3b204a97d074c0a059df 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 ae807b10e2..37da1a9d53 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); }