This is an automated email from the ASF dual-hosted git repository.
gabriellee 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 98a9079b680 [pipelineX](bug) Fix aggregate crash if open failed
(#31625)
98a9079b680 is described below
commit 98a9079b6800a5af7065f48249c08d831496de6a
Author: Gabriel <[email protected]>
AuthorDate: Fri Mar 1 09:48:33 2024 +0800
[pipelineX](bug) Fix aggregate crash if open failed (#31625)
---
be/src/pipeline/exec/aggregation_sink_operator.cpp | 1 +
be/src/pipeline/pipeline_x/dependency.h | 5 +++--
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/be/src/pipeline/exec/aggregation_sink_operator.cpp
b/be/src/pipeline/exec/aggregation_sink_operator.cpp
index 55b301c0742..9871711be23 100644
--- a/be/src/pipeline/exec/aggregation_sink_operator.cpp
+++ b/be/src/pipeline/exec/aggregation_sink_operator.cpp
@@ -157,6 +157,7 @@ Status AggSinkLocalState::open(RuntimeState* state) {
// _create_agg_status may acquire a lot of memory, may allocate failed
when memory is very few
RETURN_IF_CATCH_EXCEPTION(static_cast<void>(_create_agg_status(_agg_data->without_key)));
}
+ Base::_shared_state->ready_to_execute = true;
return Status::OK();
}
diff --git a/be/src/pipeline/pipeline_x/dependency.h
b/be/src/pipeline/pipeline_x/dependency.h
index 1733a8fd291..596ef8bc6fc 100644
--- a/be/src/pipeline/pipeline_x/dependency.h
+++ b/be/src/pipeline/pipeline_x/dependency.h
@@ -330,9 +330,9 @@ public:
agg_arena_pool = std::make_unique<vectorized::Arena>();
}
~AggSharedState() override {
- if (probe_expr_ctxs.empty()) {
+ if (probe_expr_ctxs.empty() && ready_to_execute) {
_close_without_key();
- } else {
+ } else if (ready_to_execute) {
_close_with_serialized_key();
}
}
@@ -366,6 +366,7 @@ public:
};
MemoryRecord mem_usage_record;
bool agg_data_created_without_key = false;
+ std::atomic<bool> ready_to_execute = false;
private:
void _close_with_serialized_key() {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]