This is an automated email from the ASF dual-hosted git repository.
morrysnow 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 3aa8b686031 [fix](be) return correct canceled status from scanner
(#36392)
3aa8b686031 is described below
commit 3aa8b68603106f32b83ec515e3b786dfcb651992
Author: Jerry Hu <[email protected]>
AuthorDate: Tue Jun 18 10:43:50 2024 +0800
[fix](be) return correct canceled status from scanner (#36392)
---
be/src/pipeline/exec/scan_operator.cpp | 2 +-
be/src/runtime/runtime_state.cpp | 10 +++++++++-
be/src/vec/exec/scan/scanner_context.cpp | 2 +-
3 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/be/src/pipeline/exec/scan_operator.cpp
b/be/src/pipeline/exec/scan_operator.cpp
index ac115d43879..161a79fb7c1 100644
--- a/be/src/pipeline/exec/scan_operator.cpp
+++ b/be/src/pipeline/exec/scan_operator.cpp
@@ -1461,7 +1461,7 @@ Status
ScanOperatorX<LocalStateType>::get_block(RuntimeState* state, vectorized:
if (local_state._scanner_ctx) {
local_state._scanner_ctx->stop_scanners(state);
}
- return Status::Cancelled("Query cancelled in ScanOperator");
+ return state->cancel_reason();
}
if (local_state._eos) {
diff --git a/be/src/runtime/runtime_state.cpp b/be/src/runtime/runtime_state.cpp
index 6626ada034c..137b5a84642 100644
--- a/be/src/runtime/runtime_state.cpp
+++ b/be/src/runtime/runtime_state.cpp
@@ -345,7 +345,15 @@ bool RuntimeState::is_cancelled() const {
}
Status RuntimeState::cancel_reason() const {
- return _exec_status.status();
+ if (!_exec_status.ok()) {
+ return _exec_status.status();
+ }
+
+ if (_query_ctx) {
+ return _query_ctx->exec_status();
+ }
+
+ return Status::Cancelled("Query cancelled");
}
const int64_t MAX_ERROR_NUM = 50;
diff --git a/be/src/vec/exec/scan/scanner_context.cpp
b/be/src/vec/exec/scan/scanner_context.cpp
index 6f7c41ff9b4..e15ec015908 100644
--- a/be/src/vec/exec/scan/scanner_context.cpp
+++ b/be/src/vec/exec/scan/scanner_context.cpp
@@ -215,7 +215,7 @@ Status ScannerContext::get_block_from_queue(RuntimeState*
state, vectorized::Blo
bool* eos, int id) {
if (state->is_cancelled()) {
_set_scanner_done();
- return Status::Cancelled("Query cancelled in ScannerContext");
+ return state->cancel_reason();
}
std::unique_lock l(_transfer_lock);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]