fix misuse of async rpc while create ls

This commit is contained in:
maosy
2023-01-06 08:38:08 +00:00
committed by ob-robot
parent cb953e3049
commit 4dfd67d8fb
5 changed files with 48 additions and 26 deletions

View File

@ -654,11 +654,16 @@ int ObAdminRefreshSchema::call_server(const ObAddr &server)
arg.schema_info_ = schema_info_;
ObArray<int> return_code_array;
ObSwitchSchemaProxy proxy(*GCTX.srv_rpc_proxy_, &ObSrvRpcProxy::switch_schema);
int tmp_ret = OB_SUCCESS;
const int64_t timeout_ts = ctx.get_timeout(0);
if (OB_FAIL(proxy.call(server, timeout_ts, arg))) {
LOG_WARN("notify switch schema failed", KR(ret), K(server), K_(schema_version), K_(schema_info));
} else if (OB_FAIL(proxy.wait_all(return_code_array))) {
LOG_WARN("fail to wait all", KR(ret), K(server));
}
if (OB_TMP_FAIL(proxy.wait_all(return_code_array))) {
ret = OB_SUCC(ret) ? tmp_ret : ret;
LOG_WARN("fail to wait all", KR(ret), KR(tmp_ret), K(server));
} else if (OB_FAIL(ret)) {
} else if (OB_UNLIKELY(return_code_array.empty())) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("return_code_array is empty", KR(ret), K(server));