fix both primary and restore major_freeze_service are paused or not paused

This commit is contained in:
obdev
2023-02-07 20:11:25 +08:00
committed by ob-robot
parent 9783ae4552
commit af986a6730
2 changed files with 6 additions and 3 deletions

View File

@ -38,9 +38,9 @@ int ObMajorFreezeUtil::get_major_freeze_service(
bool is_primary_service_paused = primary_major_freeze_service->is_paused(); bool is_primary_service_paused = primary_major_freeze_service->is_paused();
bool is_restore_service_paused = restore_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)) { if (0 == (is_primary_service_paused ^ is_restore_service_paused)) {
ret = OB_ERR_UNEXPECTED; ret = OB_LEADER_NOT_EXIST;
RS_LOG(ERROR, "both primary and restore major_freeze_service are paused or not paused", RS_LOG(WARN, "both primary and restore major_freeze_service are paused or not paused, may be "
KR(ret), K(is_primary_service_paused), K(is_restore_service_paused)); "switching leader", KR(ret), K(is_primary_service_paused), K(is_restore_service_paused));
} else if (!is_primary_service_paused) { } else if (!is_primary_service_paused) {
major_freeze_service = primary_major_freeze_service; major_freeze_service = primary_major_freeze_service;
is_primary_service = true; is_primary_service = true;

View File

@ -216,6 +216,9 @@ int ObTenantMajorFreeze::launch_major_freeze()
ret = OB_MAJOR_FREEZE_NOT_ALLOW; ret = OB_MAJOR_FREEZE_NOT_ALLOW;
LOG_WARN("enable_major_freeze is off, refuse to to major_freeze", LOG_WARN("enable_major_freeze is off, refuse to to major_freeze",
K_(tenant_id), KR(ret)); 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())) { } 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)); LOG_WARN("fail to try_update_epoch_and_reload", KR(ret), K_(tenant_id));
} else if (OB_FAIL(check_freeze_info())) { } else if (OB_FAIL(check_freeze_info())) {