diff --git a/src/rootserver/backup/ob_backup_data_set_task_mgr.cpp b/src/rootserver/backup/ob_backup_data_set_task_mgr.cpp index 37703916af31db1547a423effac23d6d055f954a..bd582ff40fdef3ee2466db036fa91a68c83cf6d9 100644 --- a/src/rootserver/backup/ob_backup_data_set_task_mgr.cpp +++ b/src/rootserver/backup/ob_backup_data_set_task_mgr.cpp @@ -388,8 +388,14 @@ int ObBackupSetTaskMgr::backup_user_meta_() ObArray ls_task; int64_t finish_cnt = 0; uint64_t backup_meta_start_ts = trans_scn_to_timestamp(set_task_attr_.user_ls_start_scn_); + int64_t backup_user_meta_timeout = OB_MAX_BACKUP_META_TIMEOUT; + +#ifdef ERRSIM + backup_user_meta_timeout = GCONF.errsim_max_backup_meta_retry_time_interval; +#endif + DEBUG_SYNC(BEFORE_BACKUP_UESR_META); - if (backup_meta_start_ts + OB_MAX_BACKUP_META_TIMEOUT < ObTimeUtility::current_time()) { + if (backup_meta_start_ts + backup_user_meta_timeout < ObTimeUtility::current_time()) { // backup meta overtime, need change meta turn. // get new ls list, and do backup meta in new turn. if (OB_FAIL(enable_transfer_())) { diff --git a/src/share/parameter/ob_parameter_seed.ipp b/src/share/parameter/ob_parameter_seed.ipp index 469b601016c0bf69d4a8d20052aa973a6e517774..7b8ac2d62fa917838c20987cccf85fa577f9b859 100644 --- a/src/share/parameter/ob_parameter_seed.ipp +++ b/src/share/parameter/ob_parameter_seed.ipp @@ -864,6 +864,12 @@ ERRSIM_DEF_INT(errsim_max_backup_retry_count, OB_CLUSTER_PARAMETER, "0", "[0,)", "max backup retry count in errsim mode" "Range: [0,) in integer", ObParameterAttr(Section::OBSERVER, Source::DEFAULT, EditLevel::DYNAMIC_EFFECTIVE)); + +ERRSIM_DEF_TIME(errsim_max_backup_meta_retry_time_interval, OB_CLUSTER_PARAMETER, "10s", "[1s,5m]", + "max backup meta retry time interval in errsim mode" + "Range: [1s, 5m]", + ObParameterAttr(Section::ROOT_SERVICE, Source::DEFAULT, EditLevel::DYNAMIC_EFFECTIVE)); + ERRSIM_DEF_INT(errsim_tablet_batch_count, OB_CLUSTER_PARAMETER, "0", "[0,)", "batch tablet count when in errsim mode" "Range: [0,) in integer", diff --git a/src/storage/restore/ob_ls_restore_handler.cpp b/src/storage/restore/ob_ls_restore_handler.cpp index e89ebd871b69fe6b5cf26a28e72a5b48509d9217..2b8a7e95391f8d867e7a6b45f8d4c05384773afc 100644 --- a/src/storage/restore/ob_ls_restore_handler.cpp +++ b/src/storage/restore/ob_ls_restore_handler.cpp @@ -2406,6 +2406,8 @@ bool ObLSRestoreResultMgr::can_retrieable_err_(const int err) const case OB_NOT_SUPPORTED : case OB_TENANT_HAS_BEEN_DROPPED : case OB_SERVER_OUTOF_DISK_SPACE : + case OB_BACKUP_FILE_NOT_EXIST : + case OB_ARCHIVE_ROUND_NOT_CONTINUOUS : case OB_HASH_NOT_EXIST: bret = false; break;