fix OB_LEADER_NOT_EXIST error code of get_major_freeze_service

This commit is contained in:
obdev 2023-02-13 10:14:29 +00:00 committed by ob-robot
parent 047ae0202e
commit a223edbf29
2 changed files with 17 additions and 7 deletions

View File

@ -221,6 +221,9 @@ int ObMajorFreezeHelper::do_one_tenant_major_freeze(
.by(tenant_id)
.dst_cluster_id(GCONF.cluster_id)
.major_freeze(req, resp))) {
LOG_WARN("tenant_major_freeze rpc failed", KR(ret), K(tenant_id), K(leader), K(freeze_info));
} else if (FALSE_IT(ret = resp.err_code_)) {
} else if (OB_FAIL(ret)) {
if (OB_LEADER_NOT_EXIST == ret || OB_EAGAIN == ret) {
const int64_t idle_time = 200 * 1000 * (i + 1);
LOG_WARN("leader may switch or ddl confilict, will retry", KR(ret), K(tenant_id), K(freeze_info),
@ -347,6 +350,9 @@ int ObMajorFreezeHelper::do_one_tenant_admin_merge(
.by(tenant_id)
.dst_cluster_id(GCONF.cluster_id)
.tenant_admin_merge(req, resp))) {
LOG_WARN("tenant_admin_merge rpc failed", KR(ret), K(tenant_id), K(leader), K(admin_type));
} else if (FALSE_IT(ret = resp.err_code_)) {
} else if (OB_FAIL(ret)) {
if (OB_LEADER_NOT_EXIST == ret) {
const int64_t idle_time = 200 * 1000 * (i + 1);
LOG_WARN("leader may switch, will retry", K(tenant_id), K(admin_type), "ori_leader", leader, K(idle_time));
@ -359,6 +365,11 @@ int ObMajorFreezeHelper::do_one_tenant_admin_merge(
admin_merge_done = true;
}
}
if (OB_SUCC(ret) && !admin_merge_done) {
ret = OB_LEADER_NOT_EXIST;
LOG_WARN("fail to retry admin merge cuz switching role", KR(ret), K(MAX_RETRY_COUNT));
}
}
LOG_INFO("finish to do tenant admin mrege", K(tenant_id), K(leader), K(admin_type), KR(ret));

View File

@ -61,7 +61,6 @@ int ObTenantMajorFreezeP::process()
if (FAILEDx(rootserver::ObMajorFreezeUtil::get_major_freeze_service(primary_major_freeze_service_,
restore_major_freeze_service_, major_freeze_service, is_primary_service))) {
ret = OB_ERR_UNEXPECTED;
RS_LOG(WARN, "fail to get major freeze service", KR(ret), K(req));
} else if (OB_ISNULL(major_freeze_service)) {
ret = OB_ERR_UNEXPECTED;
@ -75,16 +74,16 @@ int ObTenantMajorFreezeP::process()
if (OB_MAJOR_FREEZE_NOT_FINISHED != ret && (OB_FROZEN_INFO_ALREADY_EXIST != ret)) {
RS_LOG(WARN, "fail to launch_major_freeze", KR(ret), K(req), K(is_primary_service));
}
res.err_code_ = ret;
} else {
res.err_code_ = OB_SUCCESS;
RS_LOG(INFO, "launch_major_freeze succ", K(req), K(res), K(is_primary_service));
RS_LOG(INFO, "launch_major_freeze succ", K(req), K(is_primary_service));
}
} else {
ret = OB_MAJOR_FREEZE_NOT_ALLOW;
RS_LOG(WARN, "fail to launch_major_freeze, forbidden in restore_major_freeze_service",
KR(ret), K(req), K(is_primary_service));
}
res.err_code_ = ret;
ret = OB_SUCCESS;
return ret;
}
@ -119,7 +118,6 @@ int ObTenantAdminMergeP::process()
if (FAILEDx(rootserver::ObMajorFreezeUtil::get_major_freeze_service(primary_major_freeze_service_,
restore_major_freeze_service_, major_freeze_service, is_primary_service))) {
ret = OB_ERR_UNEXPECTED;
RS_LOG(WARN, "fail to get major freeze service", KR(ret), K(req));
} else if (OB_ISNULL(major_freeze_service)) {
ret = OB_ERR_UNEXPECTED;
@ -149,10 +147,11 @@ int ObTenantAdminMergeP::process()
break;
}
if (OB_SUCC(ret)) {
res.err_code_ = OB_SUCCESS;
RS_LOG(INFO, "succ to execute tenant admin merge", K(req), K(res), K(is_primary_service));
RS_LOG(INFO, "succ to execute tenant admin merge", K(req), K(is_primary_service));
}
}
res.err_code_ = ret;
ret = OB_SUCCESS;
return ret;
}