fix when session interrupt but return OB_SUCCESS
This commit is contained in:
parent
aa75d00d5c
commit
78374000cc
@ -62,6 +62,7 @@ int ObDDLExecutorUtil::wait_ddl_finish(
|
|||||||
ret = OB_INVALID_ARGUMENT;
|
ret = OB_INVALID_ARGUMENT;
|
||||||
LOG_WARN("invalid argument", K(ret), K(tenant_id), K(task_id), KP(common_rpc_proxy));
|
LOG_WARN("invalid argument", K(ret), K(tenant_id), K(task_id), KP(common_rpc_proxy));
|
||||||
} else {
|
} else {
|
||||||
|
int tmp_ret = OB_SUCCESS;
|
||||||
while (OB_SUCC(ret)) {
|
while (OB_SUCC(ret)) {
|
||||||
if (OB_SUCCESS == ObDDLErrorMessageTableOperator::get_ddl_error_message(
|
if (OB_SUCCESS == ObDDLErrorMessageTableOperator::get_ddl_error_message(
|
||||||
tenant_id, task_id, -1 /* target_object_id */, unused_addr, false /* is_ddl_retry_task */, *GCTX.sql_proxy_, error_message, unused_user_msg_len)) {
|
tenant_id, task_id, -1 /* target_object_id */, unused_addr, false /* is_ddl_retry_task */, *GCTX.sql_proxy_, error_message, unused_user_msg_len)) {
|
||||||
@ -72,8 +73,9 @@ int ObDDLExecutorUtil::wait_ddl_finish(
|
|||||||
break;
|
break;
|
||||||
} else if (OB_FAIL(handle_session_exception(session))) {
|
} else if (OB_FAIL(handle_session_exception(session))) {
|
||||||
LOG_WARN("session exeception happened", K(ret), K(is_support_cancel));
|
LOG_WARN("session exeception happened", K(ret), K(is_support_cancel));
|
||||||
if (is_support_cancel && OB_FAIL(cancel_ddl_task(tenant_id, common_rpc_proxy))) {
|
if (is_support_cancel && OB_TMP_FAIL(cancel_ddl_task(tenant_id, common_rpc_proxy))) {
|
||||||
LOG_WARN("cancel ddl task failed", K(ret));
|
LOG_WARN("cancel ddl task failed", K(tmp_ret));
|
||||||
|
ret = OB_SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -127,6 +129,7 @@ int ObDDLExecutorUtil::wait_ddl_retry_task_finish(
|
|||||||
ret = OB_INVALID_ARGUMENT;
|
ret = OB_INVALID_ARGUMENT;
|
||||||
LOG_WARN("invalid argument", K(ret), K(tenant_id), K(task_id), KP(common_rpc_proxy));
|
LOG_WARN("invalid argument", K(ret), K(tenant_id), K(task_id), KP(common_rpc_proxy));
|
||||||
} else {
|
} else {
|
||||||
|
int tmp_ret = OB_SUCCESS;
|
||||||
while (OB_SUCC(ret)) {
|
while (OB_SUCC(ret)) {
|
||||||
if (OB_SUCCESS == ObDDLErrorMessageTableOperator::get_ddl_error_message(
|
if (OB_SUCCESS == ObDDLErrorMessageTableOperator::get_ddl_error_message(
|
||||||
tenant_id, task_id, -1 /* target_object_id */, unused_addr, true /* is_ddl_retry_task */, *GCTX.sql_proxy_, error_message, forward_user_msg_len)) {
|
tenant_id, task_id, -1 /* target_object_id */, unused_addr, true /* is_ddl_retry_task */, *GCTX.sql_proxy_, error_message, forward_user_msg_len)) {
|
||||||
@ -164,8 +167,9 @@ int ObDDLExecutorUtil::wait_ddl_retry_task_finish(
|
|||||||
break;
|
break;
|
||||||
} else if (OB_FAIL(handle_session_exception(session))) {
|
} else if (OB_FAIL(handle_session_exception(session))) {
|
||||||
LOG_WARN("session exeception happened", K(ret));
|
LOG_WARN("session exeception happened", K(ret));
|
||||||
if (OB_FAIL(cancel_ddl_task(tenant_id, common_rpc_proxy))) {
|
if (OB_TMP_FAIL(cancel_ddl_task(tenant_id, common_rpc_proxy))) {
|
||||||
LOG_WARN("cancel ddl task failed", K(ret));
|
LOG_WARN("cancel ddl task failed", K(tmp_ret));
|
||||||
|
ret = OB_SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user