You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by pa...@apache.org on 2023/11/30 03:21:22 UTC

(doris) branch cp_1130 created (now 7b6ed7183f5)

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

panxiaolei pushed a change to branch cp_1130
in repository https://gitbox.apache.org/repos/asf/doris.git


      at 7b6ed7183f5 prevent PipelineFragmentContext destruct early

This branch includes the following new commits:

     new 7b6ed7183f5 prevent PipelineFragmentContext destruct early

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



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


(doris) 01/01: prevent PipelineFragmentContext destruct early

Posted by pa...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

panxiaolei pushed a commit to branch cp_1130
in repository https://gitbox.apache.org/repos/asf/doris.git

commit 7b6ed7183f5ab0fff4fc73ddd91bae5fc0f21d84
Author: BiteTheDDDDt <px...@qq.com>
AuthorDate: Thu Nov 30 11:21:08 2023 +0800

    prevent PipelineFragmentContext destruct early
---
 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-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org