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 4dd74e24242 [bugfix](timeout) serving_blocks_num may cause timeout, 
try to fix it (#29912)
4dd74e24242 is described below

commit 4dd74e24242c6592166e7987cfac15ecc5eb78f5
Author: yiguolei <676222...@qq.com>
AuthorDate: Fri Jan 12 23:09:30 2024 +0800

    [bugfix](timeout) serving_blocks_num may cause timeout, try to fix it 
(#29912)
    
    Although serving_blocks_num is an atomic variable. It's ++ and -- are not 
protected by transfer lock.
    I am not sure the memory order of ++ and --.
    I think it maybe the root cause of query timeout. So that I remove the 
check and test it in github pipeline.
---
 be/src/vec/exec/scan/scanner_context.cpp   | 2 +-
 be/src/vec/exec/scan/scanner_context.h     | 3 +--
 be/src/vec/exec/scan/scanner_scheduler.cpp | 2 --
 3 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/be/src/vec/exec/scan/scanner_context.cpp 
b/be/src/vec/exec/scan/scanner_context.cpp
index 046f28ae824..3b1cecd7ac2 100644
--- a/be/src/vec/exec/scan/scanner_context.cpp
+++ b/be/src/vec/exec/scan/scanner_context.cpp
@@ -505,7 +505,7 @@ void 
ScannerContext::push_back_scanner_and_reschedule(std::shared_ptr<ScannerDel
             set_status_on_error(submit_status, false);
         }
     } else {
-        LOG(INFO) << "yyyy should be sched == false, not sched" << 
debug_string();
+        LOG(INFO) << "yyyy should be sched == false, not sched. " << 
debug_string();
     }
 }
 
diff --git a/be/src/vec/exec/scan/scanner_context.h 
b/be/src/vec/exec/scan/scanner_context.h
index c4df896bacb..5f43f366bcd 100644
--- a/be/src/vec/exec/scan/scanner_context.h
+++ b/be/src/vec/exec/scan/scanner_context.h
@@ -134,8 +134,7 @@ public:
 
     // todo(wb) rethinking how to calculate ```_max_bytes_in_queue``` when 
executing shared scan
     inline bool should_be_scheduled() const {
-        return (_cur_bytes_in_queue < _max_bytes_in_queue / 2) &&
-               (_serving_blocks_num < allowed_blocks_num());
+        return _cur_bytes_in_queue < _max_bytes_in_queue / 2;
     }
 
     int get_available_thread_slot_num() {
diff --git a/be/src/vec/exec/scan/scanner_scheduler.cpp 
b/be/src/vec/exec/scan/scanner_scheduler.cpp
index 54b2b60d692..9db103f0b82 100644
--- a/be/src/vec/exec/scan/scanner_scheduler.cpp
+++ b/be/src/vec/exec/scan/scanner_scheduler.cpp
@@ -145,8 +145,6 @@ Status 
ScannerScheduler::submit(std::shared_ptr<ScannerContext> ctx) {
         LOG(INFO) << "yyyy ctx is done, not submit" << ctx->debug_string();
         return Status::EndOfFile("ScannerContext is done");
     }
-    //LOG(WARNING) << "yyyy " << Status::InternalError("Too many scheduled");
-    //LOG(WARNING) << "yyyy " << ctx->debug_string();
     ctx->queue_idx = (_queue_idx++ % QUEUE_NUM);
     if (!_pending_queues[ctx->queue_idx]->blocking_put(ctx)) {
         LOG(INFO) << "yyyy put to queue failed, not submit" << 
ctx->debug_string();


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

Reply via email to