You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by yi...@apache.org on 2022/10/15 02:39:32 UTC
[doris] branch master updated: [Fix](agg) fix bitmap agg core dump when phmap pointer assert alignment (#13381)
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 4bc33a54a1 [Fix](agg) fix bitmap agg core dump when phmap pointer assert alignment (#13381)
4bc33a54a1 is described below
commit 4bc33a54a1d3485b07c5b13fcd18d27763b1194c
Author: zhangstar333 <87...@users.noreply.github.com>
AuthorDate: Sat Oct 15 10:39:23 2022 +0800
[Fix](agg) fix bitmap agg core dump when phmap pointer assert alignment (#13381)
---
be/src/vec/exec/vaggregation_node.cpp | 9 ++++++++-
be/src/vec/exec/vaggregation_node.h | 1 +
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/be/src/vec/exec/vaggregation_node.cpp b/be/src/vec/exec/vaggregation_node.cpp
index 9469242271..4f53e2633e 100644
--- a/be/src/vec/exec/vaggregation_node.cpp
+++ b/be/src/vec/exec/vaggregation_node.cpp
@@ -459,6 +459,7 @@ Status AggregationNode::open(RuntimeState* state) {
// this could cause unable to get JVM
if (_probe_expr_ctxs.empty()) {
_create_agg_status(_agg_data.without_key);
+ _agg_data_created_without_key = true;
}
bool eos = false;
Block block;
@@ -707,7 +708,13 @@ void AggregationNode::_update_memusage_without_key() {
}
void AggregationNode::_close_without_key() {
- _destroy_agg_status(_agg_data.without_key);
+ //because prepare maybe failed, and couldn't create agg data.
+ //but finally call close to destory agg data, if agg data has bitmapValue
+ //will be core dump, it's not initialized
+ if (_agg_data_created_without_key) {
+ _destroy_agg_status(_agg_data.without_key);
+ _agg_data_created_without_key = false;
+ }
release_tracker();
}
diff --git a/be/src/vec/exec/vaggregation_node.h b/be/src/vec/exec/vaggregation_node.h
index 7b41b570c3..8223ae4232 100644
--- a/be/src/vec/exec/vaggregation_node.h
+++ b/be/src/vec/exec/vaggregation_node.h
@@ -806,6 +806,7 @@ private:
bool _should_limit_output = false;
bool _reach_limit = false;
+ bool _agg_data_created_without_key = false;
PODArray<AggregateDataPtr> _places;
std::vector<char> _deserialize_buffer;
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org