BiteTheDDDDt commented on code in PR #61130:
URL: https://github.com/apache/doris/pull/61130#discussion_r2992316963
##########
be/src/exec/pipeline/pipeline_fragment_context.cpp:
##########
@@ -1802,14 +1830,17 @@ void PipelineFragmentContext::print_profile(const
std::string& extra_info) {
}
// If all pipeline tasks binded to the fragment instance are finished, then we
could
// close the fragment instance.
-void PipelineFragmentContext::_close_fragment_instance() {
+// Returns true if the caller should call remove_pipeline_context() **after**
releasing
+// _task_mutex. We must not call remove_pipeline_context() here because it
acquires
+// _pipeline_map's shard lock, and this function is called while _task_mutex
is held.
+// Acquiring _pipeline_map while holding _task_mutex creates an ABBA deadlock
with
+// dump_pipeline_tasks(), which acquires _pipeline_map first and then
_task_mutex
+// (via debug_string()).
+bool PipelineFragmentContext::_close_fragment_instance() {
if (_is_fragment_instance_closed) {
Review Comment:
https://github.com/apache/doris/pull/27331 θΏιε η
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]