diff --git a/src/rootserver/freeze/ob_major_freeze_util.cpp b/src/rootserver/freeze/ob_major_freeze_util.cpp index 9c1b995559..31029462dd 100644 --- a/src/rootserver/freeze/ob_major_freeze_util.cpp +++ b/src/rootserver/freeze/ob_major_freeze_util.cpp @@ -38,9 +38,9 @@ int ObMajorFreezeUtil::get_major_freeze_service( bool is_primary_service_paused = primary_major_freeze_service->is_paused(); bool is_restore_service_paused = restore_major_freeze_service->is_paused(); if (0 == (is_primary_service_paused ^ is_restore_service_paused)) { - ret = OB_ERR_UNEXPECTED; - RS_LOG(ERROR, "both primary and restore major_freeze_service are paused or not paused", - KR(ret), K(is_primary_service_paused), K(is_restore_service_paused)); + ret = OB_LEADER_NOT_EXIST; + RS_LOG(WARN, "both primary and restore major_freeze_service are paused or not paused, may be " + "switching leader", KR(ret), K(is_primary_service_paused), K(is_restore_service_paused)); } else if (!is_primary_service_paused) { major_freeze_service = primary_major_freeze_service; is_primary_service = true; diff --git a/src/rootserver/freeze/ob_tenant_major_freeze.cpp b/src/rootserver/freeze/ob_tenant_major_freeze.cpp index 585007375b..2c02ddb9e1 100644 --- a/src/rootserver/freeze/ob_tenant_major_freeze.cpp +++ b/src/rootserver/freeze/ob_tenant_major_freeze.cpp @@ -216,6 +216,9 @@ int ObTenantMajorFreeze::launch_major_freeze() ret = OB_MAJOR_FREEZE_NOT_ALLOW; LOG_WARN("enable_major_freeze is off, refuse to to major_freeze", K_(tenant_id), KR(ret)); + } else if (merge_scheduler_.is_paused()) { + ret = OB_LEADER_NOT_EXIST; + LOG_WARN("leader may switch", KR(ret), K_(tenant_id)); } else if (OB_FAIL(merge_scheduler_.try_update_epoch_and_reload())) { LOG_WARN("fail to try_update_epoch_and_reload", KR(ret), K_(tenant_id)); } else if (OB_FAIL(check_freeze_info())) {