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

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


The following commit(s) were added to refs/heads/master by this push:
     new 13b9350aebb [Bug](scan)fix some case query timeout of not schedule 
scanner (#28243)
13b9350aebb is described below

commit 13b9350aebb2e800040c7d58fd63d73d10d196b0
Author: zhangstar333 <87313068+zhangstar...@users.noreply.github.com>
AuthorDate: Tue Dec 12 21:00:22 2023 +0800

    [Bug](scan)fix some case query timeout of not schedule scanner (#28243)
    
    now in pipeline, when result block queue is empty, will be reschedule, and 
then choose a batch of scanner,
    but sometimes, get_available_thread_slot_num() will return thread_slot_num 
<= 0, so it's will do nothing,
    and then block queue will always empty.
    have no chance to reschedule again until query timeout.
---
 be/src/vec/exec/scan/scanner_context.h | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/be/src/vec/exec/scan/scanner_context.h 
b/be/src/vec/exec/scan/scanner_context.h
index 33d2162906d..a1824bf193d 100644
--- a/be/src/vec/exec/scan/scanner_context.h
+++ b/be/src/vec/exec/scan/scanner_context.h
@@ -161,6 +161,9 @@ public:
         int thread_slot_num = 0;
         thread_slot_num = (allowed_blocks_num() + _block_per_scanner - 1) / 
_block_per_scanner;
         thread_slot_num = std::min(thread_slot_num, _max_thread_num - 
_num_running_scanners);
+        if (thread_slot_num <= 0) {
+            thread_slot_num = 1;
+        }
         return thread_slot_num;
     }
 


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

Reply via email to