From 009b300abdfbdf0dc58f8373e4c3aab52d9a9c4e Mon Sep 17 00:00:00 2001 From: airborne12 Date: Thu, 6 Jul 2023 13:09:37 +0800 Subject: [PATCH] [Fix](ScannerScheduler) fix dead lock when shutdown group_local_scan_thread_pool (#21553) --- be/src/vec/exec/scan/scanner_scheduler.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/be/src/vec/exec/scan/scanner_scheduler.cpp b/be/src/vec/exec/scan/scanner_scheduler.cpp index be9e4277c3..a798d097a2 100644 --- a/be/src/vec/exec/scan/scanner_scheduler.cpp +++ b/be/src/vec/exec/scan/scanner_scheduler.cpp @@ -66,6 +66,7 @@ ScannerScheduler::~ScannerScheduler() { _is_closed = true; + _task_group_local_scan_queue->close(); _scheduler_pool->shutdown(); _local_scan_thread_pool->shutdown(); _remote_scan_thread_pool->shutdown(); @@ -74,14 +75,14 @@ ScannerScheduler::~ScannerScheduler() { _scheduler_pool->wait(); _local_scan_thread_pool->join(); + _remote_scan_thread_pool->wait(); + _limited_scan_thread_pool->wait(); + _group_local_scan_thread_pool->wait(); for (int i = 0; i < QUEUE_NUM; i++) { delete _pending_queues[i]; } delete[] _pending_queues; - - _task_group_local_scan_queue->close(); - _group_local_scan_thread_pool->wait(); } Status ScannerScheduler::init(ExecEnv* env) {