From 28c14e77248e07ee71425e8d611f52197e09c2f2 Mon Sep 17 00:00:00 2001 From: DengzhiLiu Date: Wed, 21 Jun 2023 12:48:38 +0000 Subject: [PATCH] Add defense for range scan in multi version sstable --- src/storage/blocksstable/ob_micro_block_row_scanner.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/storage/blocksstable/ob_micro_block_row_scanner.cpp b/src/storage/blocksstable/ob_micro_block_row_scanner.cpp index 1e1e21f69..fcf637caa 100644 --- a/src/storage/blocksstable/ob_micro_block_row_scanner.cpp +++ b/src/storage/blocksstable/ob_micro_block_row_scanner.cpp @@ -895,6 +895,13 @@ int ObMultiVersionMicroBlockRowScanner::inner_get_next_row_impl(const ObDatumRow ++context_->table_store_stat_.logical_read_cnt_; } } + } else { + if (!reverse_scan_ && (last_ < reader_->row_count() - 1) && + !is_row_empty(prev_micro_row_)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("Unexpected locate range", K(ret), K_(start), K_(last), K_(reverse_scan), KPC_(range), + K_(prev_micro_row), K_(macro_id)); + } } return ret; }