diff --git a/src/rootserver/freeze/ob_major_freeze_helper.cpp b/src/rootserver/freeze/ob_major_freeze_helper.cpp index bc600e265..701b92074 100644 --- a/src/rootserver/freeze/ob_major_freeze_helper.cpp +++ b/src/rootserver/freeze/ob_major_freeze_helper.cpp @@ -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)); diff --git a/src/rootserver/freeze/ob_major_freeze_rpc_define.cpp b/src/rootserver/freeze/ob_major_freeze_rpc_define.cpp index e9cc92430..0c78f955c 100644 --- a/src/rootserver/freeze/ob_major_freeze_rpc_define.cpp +++ b/src/rootserver/freeze/ob_major_freeze_rpc_define.cpp @@ -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; }