From 6ab9fd8065816e597f160373e6b51a8a00b80780 Mon Sep 17 00:00:00 2001 From: obdev Date: Thu, 30 Mar 2023 10:41:39 +0000 Subject: [PATCH] fix receive op fail to drain because qc interrupted it --- src/sql/engine/px/exchange/ob_px_receive_op.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/sql/engine/px/exchange/ob_px_receive_op.cpp b/src/sql/engine/px/exchange/ob_px_receive_op.cpp index a5b78c89cc..a5d8833b22 100644 --- a/src/sql/engine/px/exchange/ob_px_receive_op.cpp +++ b/src/sql/engine/px/exchange/ob_px_receive_op.cpp @@ -419,11 +419,10 @@ int ObPxReceiveOp::drain_exch() } else if (OB_FAIL(active_all_receive_channel())) { LOG_WARN("failed to active all receive channel", K(ret)); } - if (OB_SUCC(ret)) { - LOG_TRACE("drain px receive", K(get_spec().id_), K(ret), K(lbt())); - dfc_.drain_all_channels(); - exch_drained_ = true; - } else if (OB_ITER_END == ret) { + LOG_TRACE("drain px receive", K(get_spec().id_), K(ret), K(lbt())); + dfc_.drain_all_channels(); + exch_drained_ = true; + if (OB_ITER_END == ret) { /** * active_all_receive_channel有拿行的操作,可能会产生OB_ITER_END, * 所以这里错误码是OB_ITER_END,我们已经达到了drain的目的,将错误码