fix das retry thread deadlock

This commit is contained in:
leslieyuchen
2023-08-24 07:40:33 +00:00
committed by ob-robot
parent a9fbca91d0
commit bb35a1f410
24 changed files with 105 additions and 81 deletions

View File

@ -456,6 +456,13 @@ int ObPxSQCProxy::report(int end_ret) const
// overwrite ret
ObPxTask &task = tasks.at(i);
ObPxErrorUtil::update_sqc_error_code(sqc_ret, task.get_result(), task.err_msg_, finish_msg.err_msg_);
if (OB_SUCCESS == finish_msg.das_retry_rc_) {
//Even if the PX task is successfully retried by DAS,
//it is necessary to collect the retry error code of each task and provide feedback to the QC node of PX,
//so that the QC node can refresh the location cache in a timely manner,
//avoiding the next execution from being sent to the same erroneous node.
finish_msg.das_retry_rc_ = task.get_das_retry_rc();
}
affected_rows += task.get_affected_rows();
finish_msg.dml_row_info_.add_px_dml_row_info(task.dml_row_info_);
finish_msg.temp_table_id_ = task.temp_table_id_;