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) {