Modify the ret value passed when interrupting other threads of the sqc.

This commit is contained in:
qingsuijiu
2024-02-29 05:25:03 +00:00
committed by ob-robot
parent 69557746e3
commit 2776bafa0e

View File

@ -485,10 +485,19 @@ int ObPxTaskProcess::do_process()
&& ObVirtualTableErrorWhitelist::should_ignore_vtable_error(ret)) { && ObVirtualTableErrorWhitelist::should_ignore_vtable_error(ret)) {
// 忽略虚拟表错误 // 忽略虚拟表错误
} else { } else {
int tmp_ret = OB_SUCCESS;
if (OB_SUCCESS == ERRSIM_INTERRUPT_QC_FAILED) { if (OB_SUCCESS == ERRSIM_INTERRUPT_QC_FAILED) {
(void) ObInterruptUtil::interrupt_qc(arg_.task_, ret, arg_.exec_ctx_); if (OB_SUCCESS != (tmp_ret = ObInterruptUtil::interrupt_qc(arg_.task_, ret, arg_.exec_ctx_))) {
LOG_WARN("interrupt_qc failed", K(tmp_ret));
}
}
// Regardless of whether interrupt_qc succeeds or not,
// always execute interrupt_tasks to ensure other threads in the current sqc terminate more quickly,
// thereby improving overall efficiency.
if (OB_SUCCESS != (tmp_ret = ObInterruptUtil::interrupt_tasks(arg_.get_sqc_handler()->get_sqc_init_arg().sqc_,
OB_GOT_SIGNAL_ABORTING))) {
LOG_WARN("interrupt_tasks failed", K(tmp_ret));
} }
(void) ObInterruptUtil::interrupt_tasks(arg_.get_sqc_handler()->get_sqc_init_arg().sqc_, ret);
} }
} }