From 3e5255a862309aadbd893f3ac62fbbefd4229faf Mon Sep 17 00:00:00 2001 From: Gabriel Date: Thu, 1 Aug 2024 18:23:41 +0800 Subject: [PATCH] =?UTF-8?q?[pipeline](fix)=20Fix=20blocking=20task=20which?= =?UTF-8?q?=20is=20not=20triggered=20by=202nd=20RPC=20(=E2=80=A6=20(#38694?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit …#38568) Once a query is cancelled due to any reason, BE may not receive 2nd RPC from FE. If so, we must ensure the execution dependency is ready so tasks will not be blocked. --- be/src/pipeline/pipeline_x/pipeline_x_task.h | 1 + 1 file changed, 1 insertion(+) diff --git a/be/src/pipeline/pipeline_x/pipeline_x_task.h b/be/src/pipeline/pipeline_x/pipeline_x_task.h index ae89fe2cdd..47746b76fb 100644 --- a/be/src/pipeline/pipeline_x/pipeline_x_task.h +++ b/be/src/pipeline/pipeline_x/pipeline_x_task.h @@ -139,6 +139,7 @@ public: int task_id() const { return _index; }; void clear_blocking_state() { + _state->get_query_ctx()->get_execution_dependency()->set_always_ready(); // We use a lock to assure all dependencies are not deconstructed here. std::unique_lock lc(_dependency_lock); if (!_finished) {