An exception occurred in the task, notify other tasks to exit
This commit is contained in:
@ -1372,6 +1372,7 @@ int ObPxTransmitOp::link_ch_sets(ObPxTaskChSet &ch_set,
|
||||
return ret;
|
||||
}
|
||||
|
||||
ERRSIM_POINT_DEF(ERRSIM_DYNAMIC_SAMPLE_FAIL)
|
||||
int ObPxTransmitOp::do_datahub_dynamic_sample(int64_t op_id, ObDynamicSamplePieceMsg &piece_msg)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
@ -1381,6 +1382,9 @@ int ObPxTransmitOp::do_datahub_dynamic_sample(int64_t op_id, ObDynamicSamplePiec
|
||||
ret = OB_NOT_SUPPORTED;
|
||||
LOG_WARN("dynimic sample only supported in parallel execution mode", K(ret));
|
||||
LOG_USER_ERROR(OB_NOT_SUPPORTED, "dynimic sample in non-px mode");
|
||||
} else if (OB_SUCCESS != ERRSIM_DYNAMIC_SAMPLE_FAIL &&
|
||||
ctx_.get_px_task_id() == 0) {
|
||||
ret = ERRSIM_DYNAMIC_SAMPLE_FAIL;
|
||||
} else {
|
||||
const ObDynamicSampleWholeMsg *temp_whole_msg = NULL;
|
||||
ObPxSQCProxy &proxy = handler->get_sqc_proxy();
|
||||
|
||||
@ -307,7 +307,8 @@ int ObPxSQCProxy::inner_get_dh_msg(
|
||||
// wait 50us
|
||||
ob_usleep(50);
|
||||
}
|
||||
} while (common::OB_EAGAIN == ret);
|
||||
} while (common::OB_EAGAIN == ret &&
|
||||
OB_SUCC(THIS_WORKER.check_status()));
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
|
||||
@ -333,6 +333,7 @@ int ObPxTaskProcess::execute(ObOpSpec &root_spec)
|
||||
return ret;
|
||||
}
|
||||
|
||||
ERRSIM_POINT_DEF(ERRSIM_INTERRUPT_QC_FAILED)
|
||||
int ObPxTaskProcess::do_process()
|
||||
{
|
||||
LOG_TRACE("[CMD] run task", "task", arg_.task_);
|
||||
@ -484,8 +485,11 @@ int ObPxTaskProcess::do_process()
|
||||
&& ObVirtualTableErrorWhitelist::should_ignore_vtable_error(ret)) {
|
||||
// 忽略虚拟表错误
|
||||
} else {
|
||||
if (OB_SUCCESS == ERRSIM_INTERRUPT_QC_FAILED) {
|
||||
(void) ObInterruptUtil::interrupt_qc(arg_.task_, ret, arg_.exec_ctx_);
|
||||
}
|
||||
(void) ObInterruptUtil::interrupt_tasks(arg_.get_sqc_handler()->get_sqc_init_arg().sqc_, ret);
|
||||
}
|
||||
}
|
||||
|
||||
LOG_TRACE("notify SQC task exit", K(dfo_id), K(sqc_id), K(task_id), K(ret));
|
||||
|
||||
Reference in New Issue
Block a user