From d11b65d66bf2ab7c7cac6b38d886530c47024598 Mon Sep 17 00:00:00 2001 From: Handora Date: Thu, 8 Aug 2024 13:03:22 +0000 Subject: [PATCH] [CP] [BUG] fix transfer status and scn not synced problem --- src/storage/ls/ob_freezer.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/storage/ls/ob_freezer.cpp b/src/storage/ls/ob_freezer.cpp index 948453c0e2..0d72eba11d 100644 --- a/src/storage/ls/ob_freezer.cpp +++ b/src/storage/ls/ob_freezer.cpp @@ -1042,7 +1042,13 @@ int ObFreezer::decide_real_snapshot_version_(const ObTabletID &tablet_id, } else if (ObTabletStatus::TRANSFER_OUT != user_data.tablet_status_ && ObTabletStatus::TRANSFER_OUT_DELETED != user_data.tablet_status_) { //do nothing - } else if (user_data.transfer_scn_.is_valid()) { + } else if (user_data.transfer_scn_.is_valid() + // transfer's status and transfer_scn may not be synced because + // transfer_out_prepare log changes the status and transfer_out log + // changes the transfer_scn, while we can use origin freeze + // snapshot version because the transfer_out log which decides the + // transfer_scn has not been synced or replayed + && share::SCN::min_scn() != user_data.transfer_scn_) { transfer_scn = user_data.transfer_scn_; }