This is an automated email from the ASF dual-hosted git repository.
dataroaring 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 8551ceaa1b [Bug][Vectorized] Fix use-after-free bug of memtable shrink
(#11197)
8551ceaa1b is described below
commit 8551ceaa1b0f181abe861297c331646fd5c4cede
Author: HappenLee <[email protected]>
AuthorDate: Tue Jul 26 16:10:44 2022 +0800
[Bug][Vectorized] Fix use-after-free bug of memtable shrink (#11197)
Co-authored-by: lihaopeng <[email protected]>
---
be/src/olap/memtable.cpp | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/be/src/olap/memtable.cpp b/be/src/olap/memtable.cpp
index 2c3ee73357..a44c54c552 100644
--- a/be/src/olap/memtable.cpp
+++ b/be/src/olap/memtable.cpp
@@ -312,10 +312,15 @@ void MemTable::_collect_vskiplist_results() {
for (size_t i = _schema->num_key_columns(); i <
_schema->num_columns(); ++i) {
auto function = _agg_functions[i];
auto agg_place = it.key()->agg_places(i);
- function->insert_result_into(agg_place,
-
*(_output_mutable_block.get_column_by_position(i)));
+ auto col_ptr =
_output_mutable_block.get_column_by_position(i).get();
+ function->insert_result_into(agg_place, *col_ptr);
if constexpr (is_final) {
function->destroy(agg_place);
+ } else {
+ function->reset(agg_place);
+ function->add(agg_place,
+ const_cast<const
doris::vectorized::IColumn**>(&col_ptr), idx,
+ nullptr);
}
}
if constexpr (!is_final) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]