From 4ba15b27cacc86ae82fc0a5de8780eb27bd5f3fc Mon Sep 17 00:00:00 2001 From: yiguolei Date: Thu, 16 May 2024 06:32:21 +0800 Subject: [PATCH] simple fix for cancel core block dep is released when call --- be/src/pipeline/pipeline_x/pipeline_x_task.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/be/src/pipeline/pipeline_x/pipeline_x_task.h b/be/src/pipeline/pipeline_x/pipeline_x_task.h index 1f3dd9c3b71f5f..03bafd479924a6 100644 --- a/be/src/pipeline/pipeline_x/pipeline_x_task.h +++ b/be/src/pipeline/pipeline_x/pipeline_x_task.h @@ -139,6 +139,9 @@ class PipelineXTask : public PipelineTask { int task_id() const { return _index; }; void clear_blocking_state() { + // Another thread may call finalize to release all dependencies + // And then it will core. + std::unique_lock lc(_release_lock); if (!_finished && get_state() != PipelineTaskState::PENDING_FINISH && _blocked_dep) { _blocked_dep->set_ready(); _blocked_dep = nullptr;