Fix transfer backfill with ls migration concurrency defence error.

This commit is contained in:
godyangfight
2023-12-15 10:17:38 +00:00
committed by ant-ob-hengtang
parent acdc64e98f
commit e148548775
3 changed files with 9 additions and 1 deletions

View File

@ -1955,7 +1955,9 @@ int ObStartCompleteMigrationTask::wait_log_replay_to_max_minor_end_scn_()
if (REACH_TENANT_TIME_INTERVAL(60 * 1000 * 1000)) {
LOG_INFO("ls wait replay to max minor sstable end log ts, retry next loop", "arg", ctx_->arg_,
"wait_replay_start_ts", wait_replay_start_ts,
"current_ts", current_ts);
"current_ts", current_ts,
"max_minor_end_scn", max_minor_end_scn_,
"current_replay_scn", current_replay_scn);
}
if (current_ts - wait_replay_start_ts < timeout) {

View File

@ -445,6 +445,8 @@ int ObMigrationStatusHelper::check_ls_transfer_tablet_(
allow_gc = true;
} else if (OB_FAIL(set_ls_migrate_gc_status_(*ls, allow_gc))) {
LOG_WARN("failed to set ls gc status", KR(ret));
} else if (!allow_gc) {
//do nothing
} else if (OB_FAIL(ls->get_restore_status(restore_status))) {
LOG_WARN("failed to get restore status", K(ret), KPC(ls));
} else if (restore_status.is_in_restore()) {

View File

@ -136,6 +136,10 @@ int ObTransferWorkerMgr::get_need_backfill_tx_tablets_(ObTransferBackfillTXParam
// do nothing
} else if (!tablet->get_tablet_meta().has_transfer_table()) {
// do nothing
} else if (!tablet->get_tablet_meta().ha_status_.is_data_status_complete()) {
LOG_INFO("[TRANSFER_BACKFILL]skip tablet which data status is incomplete",
"tablet_id", tablet->get_tablet_meta().tablet_id_,
"ha_status", tablet->get_tablet_meta().ha_status_);
} else if (!tablet->get_tablet_meta().ha_status_.is_restore_status_full()) {
// Restore status is FULL when the tablet is created by transfer in. It can
// turn into one of the following status.