From e7429dc6571861a32d3e803fb86135fe64fd2799 Mon Sep 17 00:00:00 2001 From: DengzhiLiu Date: Thu, 29 Dec 2022 06:41:42 +0000 Subject: [PATCH] Fix hang in row lock check for ghost row --- .../blocksstable/ob_micro_block_row_lock_checker.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/storage/blocksstable/ob_micro_block_row_lock_checker.cpp b/src/storage/blocksstable/ob_micro_block_row_lock_checker.cpp index fe4f3eac1..7659cdb84 100644 --- a/src/storage/blocksstable/ob_micro_block_row_lock_checker.cpp +++ b/src/storage/blocksstable/ob_micro_block_row_lock_checker.cpp @@ -81,6 +81,15 @@ int ObMicroBlockRowLockChecker::get_next_row(const ObDatumRow *&row) break; } } else { // committed row + if (flag.is_ghost_row()) { + if (OB_UNLIKELY(!flag.is_last_multi_version_row())) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("Unexpected row flag", K(ret), K(flag)); + } else { + ret = OB_ITER_END; + } + } + current_++; break; } current_++;