This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push:
new 26bf3d93186 [Bug](schema-change) pass arena to agg function's add
method (#52930)
26bf3d93186 is described below
commit 26bf3d93186483cffabf534279d7133ee532b038
Author: Pxl <[email protected]>
AuthorDate: Wed Jul 9 10:49:08 2025 +0800
[Bug](schema-change) pass arena to agg function's add method (#52930)
part of https://github.com/apache/doris/pull/36607
```cpp
0# doris::signal::(anonymous namespace)::FailureSignalHandler(int,
siginfo_t*, void*) in /usr/local/service/doris/lib/be/doris_be
1# os::Linux::chained_handler(int, siginfo*, void*) in
/usr/local/jdk/jre/lib/amd64/server/libjvm.so
2# JVM_handle_linux_signal in /usr/local/jdk/jre/lib/amd64/server/libjvm.so
3# signalHandler(int, siginfo*, void*) in
/usr/local/jdk/jre/lib/amd64/server/libjvm.so
4# 0x00007F4AD7C1A400 in /lib64/libc.so.6
5# doris::vectorized::AggregateFunctionCollectSetData<doris::StringRef,
std::integral_constant<bool, false>
>::merge(doris::vectorized::AggregateFunctionCollectSetData<doris::StringRef,
std::integral_constant<bool, false> > const&, doris::vectorized::Arena*) in
/usr/local/service/doris/lib/be/doris_be
6#
doris::vectorized::IAggregateFunctionHelper<doris::vectorized::AggregateFunctionNullUnaryInline<doris::vectorized::AggregateFunctionCollect<doris::vectorized::AggregateFunctionCollectSetData<doris::StringRef,
std::integral_constant<bool, false> >, std::integral_constant<bool, false>,
std::integral_constant<bool, false> >, false>
>::deserialize_and_merge_from_column_range(char*, doris::vectorized::IColumn
const&, unsigned long, unsigned long, doris::vectorized::Arena*) const in /usr
[...]
7#
doris::MultiBlockMerger::merge(std::vector<std::unique_ptr<doris::vectorized::Block,
std::default_delete<doris::vectorized::Block> >,
std::allocator<std::unique_ptr<doris::vectorized::Block,
std::default_delete<doris::vectorized::Block> > > > const&,
doris::RowsetWriter*, unsigned long*) in
/usr/local/service/doris/lib/be/doris_be
8#
doris::VSchemaChangeWithSorting::_internal_sorting(std::vector<std::unique_ptr<doris::vectorized::Block,
std::default_delete<doris::vectorized::Block> >,
std::allocator<std::unique_ptr<doris::vectorized::Block,
std::default_delete<doris::vectorized::Block> > > > const&, doris::Version
const&, long, std::shared_ptr<doris::Tablet>, doris::RowsetTypePB,
doris::SegmentsOverlapPB, std::shared_ptr<doris::TabletSchema>) in
/usr/local/service/doris/lib/be/doris_be
9#
doris::VSchemaChangeWithSorting::_inner_process(std::shared_ptr<doris::RowsetReader>,
doris::RowsetWriter*, std::shared_ptr<doris::Tablet>,
std::shared_ptr<doris::TabletSchema>,
std::shared_ptr<doris::TabletSchema>)::$_1::operator()() const in
/usr/local/service/doris/lib/be/doris_be
10#
doris::VSchemaChangeWithSorting::_inner_process(std::shared_ptr<doris::RowsetReader>,
doris::RowsetWriter*, std::shared_ptr<doris::Tablet>,
std::shared_ptr<doris::TabletSchema>, std::shared_ptr<doris::TabletSchema>) in
/usr/local/service/doris/lib/be/doris_be
11# doris::SchemaChange::process(std::shared_ptr<doris::RowsetReader>,
doris::RowsetWriter*, std::shared_ptr<doris::Tablet>,
std::shared_ptr<doris::Tablet>, std::shared_ptr<doris::TabletSchema>,
std::shared_ptr<doris::TabletSchema>) in
/usr/local/service/doris/lib/be/doris_be
12#
doris::SchemaChangeHandler::_convert_historical_rowsets(doris::SchemaChangeHandler::SchemaChangeParams
const&, long*) in /usr/local/service/doris/lib/be/doris_be
13#
doris::SchemaChangeHandler::_do_process_alter_tablet_v2(doris::TAlterTabletReqV2
const&) in /usr/local/service/doris/lib/be/doris_be
14#
doris::SchemaChangeHandler::process_alter_tablet_v2(doris::TAlterTabletReqV2
const&) in /usr/local/service/doris/lib/be/doris_be
15# doris::EngineAlterTabletTask::execute() in
/usr/local/service/doris/lib/be/doris_be
16# doris::alter_tablet_callback(doris::StorageEngine&,
doris::TAgentTaskRequest const&) in /usr/local/service/doris/lib/be/doris_be
17# std::_Function_handler<void (),
doris::TaskWorkerPool::submit_task(doris::TAgentTaskRequest
const&)::$_0::operator()<doris::TAgentTaskRequest
const&>(doris::TAgentTaskRequest const&) const::
{lambda()#1}
>::_M_invoke(std::_Any_data const&) in
/usr/local/service/doris/lib/be/doris_be
18# doris::ThreadPool::dispatch_thread() in
/usr/local/service/doris/lib/be/doris_be
19# doris::Thread::supervise_thread(void*) in
/usr/local/service/doris/lib/be/doris_be
20# start_thread in /lib64/libpthread.so.0
21# __clone in /lib64/libc.so.6
```
---
be/src/olap/schema_change.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/be/src/olap/schema_change.cpp b/be/src/olap/schema_change.cpp
index 351ca5e8a2f..cebc92e9fc8 100644
--- a/be/src/olap/schema_change.cpp
+++ b/be/src/olap/schema_change.cpp
@@ -163,7 +163,7 @@ public:
agg_functions[j - key_number]->add(
agg_places[j - key_number],
const_cast<const
vectorized::IColumn**>(&column_ptr), row_ref.position,
- nullptr);
+ &_arena);
}
if (i == rows - 1 || _cmp.compare(row_refs[i], row_refs[i +
1])) {
@@ -249,6 +249,7 @@ private:
TabletSharedPtr _tablet;
RowRefComparator _cmp;
+ vectorized::Arena _arena;
};
BlockChanger::BlockChanger(TabletSchemaSPtr tablet_schema, DescriptorTbl
desc_tbl)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]