diff --git a/src/storage/backup/ob_backup_utils.cpp b/src/storage/backup/ob_backup_utils.cpp index 056aeff1b9..1c9dbbe800 100644 --- a/src/storage/backup/ob_backup_utils.cpp +++ b/src/storage/backup/ob_backup_utils.cpp @@ -1718,6 +1718,7 @@ int ObBackupTabletProvider::get_tablet_handle_(const uint64_t tenant_id, const s ObLSHandle ls_handle; ObLSService *ls_svr = NULL; const int64_t timeout_us = ObTabletCommon::NO_CHECK_GET_TABLET_TIMEOUT_US; + ObTabletTxMultiSourceDataUnit tx_data; if (OB_ISNULL(ls_svr = MTL(ObLSService *))) { ret = OB_ERR_UNEXPECTED; LOG_WARN("MTL ObLSService is null", K(ret), K(tenant_id)); @@ -1730,6 +1731,12 @@ int ObBackupTabletProvider::get_tablet_handle_(const uint64_t tenant_id, const s LOG_WARN("failed to check ls valid for backup", K(ret), K(tenant_id), K(ls_id), K(rebuild_seq)); } else if (OB_FAIL(ls->get_tablet(tablet_id, tablet_handle, timeout_us))) { LOG_WARN("failed to get tablet handle", K(ret), K(tenant_id), K(ls_id), K(tablet_id)); + } else if (OB_FAIL(tablet_handle.get_obj()->get_tx_data(tx_data))) { + LOG_WARN("failed to get tx data", K(ret), K(tablet_handle)); + } else if (ObTabletStatus::CREATING == tx_data.tablet_status_) { + ret = OB_EAGAIN; + // TODO(chongrong.th): open this later when fix support restore creating tablet + LOG_WARN("tablet still creating, try later", K(ret), K(tenant_id), K(ls_id), K(tablet_id), K(tx_data)); } else if (OB_FAIL(ObBackupUtils::check_ls_valid_for_backup(tenant_id, ls_id, rebuild_seq))) { LOG_WARN("failed to check ls valid for backup", K(ret), K(tenant_id), K(ls_id), K(rebuild_seq)); }