From 5f6497f95c721c5edfe2ad618e5efb07e4c4548a Mon Sep 17 00:00:00 2001 From: godyangfight Date: Wed, 17 Jul 2024 11:22:23 +0000 Subject: [PATCH] Fix transfer backfill tx mistake error. --- src/storage/high_availability/ob_tablet_backfill_tx.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/storage/high_availability/ob_tablet_backfill_tx.cpp b/src/storage/high_availability/ob_tablet_backfill_tx.cpp index e9c83838ae..0527e258b2 100644 --- a/src/storage/high_availability/ob_tablet_backfill_tx.cpp +++ b/src/storage/high_availability/ob_tablet_backfill_tx.cpp @@ -947,6 +947,14 @@ int ObTabletBackfillTXTask::add_ready_sstable_into_table_mgr_( LOG_WARN("failed to get latest tablet status", K(ret), KP(tablet)); } else if (FALSE_IT(transfer_start_scn = user_data.transfer_scn_)) { } else if (FALSE_IT(transfer_seq = tablet->get_tablet_meta().transfer_info_.transfer_seq_)) { + } else if (!transfer_start_scn.is_valid()) { + if (tablet_info_.is_committed_) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("transfer transaction is committed but transfer start scn is invalid, unexpected", K(ret), K(tablet_info_), K(user_data)); + } else { + ret = OB_EAGAIN; + LOG_WARN("transfer start scn is invalid, may transfer transaction rollback, need retry", K(ret), K(tablet_info_), K(user_data)); + } } else { for (int64_t i = 0; OB_SUCC(ret) && i < non_backfill_sstable.count(); ++i) { ObTableHandleV2 &table_handle = non_backfill_sstable.at(i);