This is an automated email from the ASF dual-hosted git repository.

kxiao pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.0 by this push:
     new dfe7608e101 [Bug](pipeline) prevent PipelineFragmentContext destruct 
early (#27790)
dfe7608e101 is described below

commit dfe7608e1013032fc232087137ccee234d7b29d8
Author: Pxl <pxl...@qq.com>
AuthorDate: Thu Nov 30 13:19:50 2023 +0800

    [Bug](pipeline) prevent PipelineFragmentContext destruct early (#27790)
---
 be/src/pipeline/task_scheduler.cpp | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/be/src/pipeline/task_scheduler.cpp 
b/be/src/pipeline/task_scheduler.cpp
index 00b27fc59bf..dc9dd17826f 100644
--- a/be/src/pipeline/task_scheduler.cpp
+++ b/be/src/pipeline/task_scheduler.cpp
@@ -319,6 +319,11 @@ void TaskScheduler::_do_work(size_t index) {
 }
 
 void TaskScheduler::_try_close_task(PipelineTask* task, PipelineTaskState 
state) {
+    // close_a_pipeline may delete fragment context and will core in some defer
+    // code, because the defer code will access fragment context it self.
+    std::shared_ptr<PipelineFragmentContext> lock_for_context =
+            task->fragment_context()->shared_from_this();
+
     if (task->is_pending_finish()) {
         task->set_state(PipelineTaskState::PENDING_FINISH);
         _blocked_task_scheduler->add_blocked_task(task);


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to