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