jacktengg opened a new pull request, #27312:
URL: https://github.com/apache/doris/pull/27312
## Proposed changes
Issue Number: close #xxx
- Issue 1: Wrong result for operator <=>
Reporduce:
```
drop table if exists test_eq_for_null_nullable;
create table test_eq_for_null_nullable(
k1 int
) distributed by hash(k1) properties("replication_num"="1");
insert into test_eq_for_null_nullable values (null), (null), (null), (null);
drop table if exists test_eq_for_null_nullable2;
create table test_eq_for_null_nullable2(
k1 int
) distributed by hash(k1) properties("replication_num"="1");
insert into test_eq_for_null_nullable2 values
(null),(0),(1),(2),(3);
select * from test_eq_for_null_nullable a, test_eq_for_null_nullable2 b
where a.k1 <=> b.k1;
```
Expected result:
```
+------+------+
| k1 | k1 |
+------+------+
| NULL | NULL |
| NULL | NULL |
| NULL | NULL |
| NULL | NULL |
+------+------+
```
Actual result:
```
mysql [regression_test_correctness_p0]>select * from
test_eq_for_null_nullable a, test_eq_for_null_nullable2 b where a.k1 <=> b.k1;
+------+------+
| k1 | k1 |
+------+------+
| NULL | NULL |
| NULL | 0 |
| NULL | NULL |
| NULL | 0 |
| NULL | NULL |
| NULL | 0 |
| NULL | NULL |
| NULL | 0 |
+------+------+
8 rows in set (0.04 sec)
```
- Issue 2: be coredump
Reproduce:
```
create table test_eq_for_null (
k1 int
) distributed by hash(k1) properties("replication_num"="1");
insert into test_eq_for_null values
(null), (null), (null),(null),(null),(null),(null),(null),
(null), (null), (null),(null),(null),(null),(null),(null),
(null), (null), (null),(null),(null),(null),(null),(null),
(null), (null), (null),(null),(null),(null),(null),(null),
(null), (null), (null),(null),(null),(null),(null),(null),
(null), (null), (null),(null),(null),(null),(null),(null),
(null), (null), (null),(null),(null),(null),(null),(null);
select * from test_eq_for_null where k1 <=> null;
```
coredump callstack:
```
start time: Mon Nov 20 16:58:13 HKT 2023
INFO: java_cmd /mnt/disk2/tengjianping/local/jdk1.8.0_131/bin/java
INFO: jdk_version 8
=================================================================
==4194119==ERROR: AddressSanitizer: heap-buffer-overflow on address
0x60600331aee0 at pc 0x55f5969afd0f bp 0x7d6db9482840 sp 0x7d6db9482838
READ of size 4 at 0x60600331aee0 thread T566 (_scanner_scan)
#0 0x55f5969afd0e in doris::vectorized::NumComparisonImpl<int, int,
doris::vectorized::EqualsOp<int,
int>>::vector_vector(doris::vectorized::PODArray<int, 4096ul, Allocator<false,
false, false>, 15ul, 16ul> const&, doris::vectorized::PODArray<int, 4096ul,
Allocator<false, false, false>, 15ul, 16ul> const&,
doris::vectorized::PODArray<unsigned char, 4096ul, Allocator<false, false,
false>, 15ul, 16ul>&)
/mnt/disk2/tengjianping/doris-39/be/src/vec/functions/functions_comparison.h:70:40
#1 0x55f5969a85f0 in bool
doris::vectorized::FunctionComparison<doris::vectorized::EqualsOp,
doris::vectorized::NameEquals>::execute_num_right_type<int,
int>(doris::vectorized::Block&, unsigned long,
doris::vectorized::ColumnVector<int> const*, doris::vectorized::IColumn const*)
const
/mnt/disk2/tengjianping/doris-39/be/src/vec/functions/functions_comparison.h:282:13
#2 0x55f59694ae9c in bool
doris::vectorized::FunctionComparison<doris::vectorized::EqualsOp,
doris::vectorized::NameEquals>::execute_num_left_type<int>(doris::vectorized::Block&,
unsigned long, doris::vectorized::IColumn const*, doris::vectorized::IColumn
const*) const
/mnt/disk2/tengjianping/doris-39/be/src/vec/functions/functions_comparison.h:343:17
#3 0x55f596945284 in
doris::vectorized::FunctionComparison<doris::vectorized::EqualsOp,
doris::vectorized::NameEquals>::execute_impl(doris::FunctionContext*,
doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned
long>> const&, unsigned long, unsigned long) const
/mnt/disk2/tengjianping/doris-39/be/src/vec/functions/functions_comparison.h:584:19
#4 0x55f5960245c5 in
doris::vectorized::DefaultExecutable::execute_impl(doris::FunctionContext*,
doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned
long>> const&, unsigned long, unsigned long) const
/mnt/disk2/tengjianping/doris-39/be/src/vec/functions/function.h:506:26
#5 0x55f599bfb482 in
doris::vectorized::PreparedFunctionImpl::_execute_skipped_constant_deal(doris::FunctionContext*,
doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned
long>> const&, unsigned long, unsigned long, bool)
/mnt/disk2/tengjianping/doris-39/be/src/vec/functions/function.cpp:151:16
#6 0x55f599befb20 in
doris::vectorized::PreparedFunctionImpl::execute_without_low_cardinality_columns(doris::FunctionContext*,
doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned
long>> const&, unsigned long, unsigned long, bool)
/mnt/disk2/tengjianping/doris-39/be/src/vec/functions/function.cpp:262:12
#7 0x55f599befc3f in
doris::vectorized::PreparedFunctionImpl::execute(doris::FunctionContext*,
doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned
long>> const&, unsigned long, unsigned long, bool)
/mnt/disk2/tengjianping/doris-39/be/src/vec/functions/function.cpp:268:12
#8 0x55f59602140a in
doris::vectorized::IFunctionBase::execute(doris::FunctionContext*,
doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned
long>> const&, unsigned long, unsigned long, bool)
/mnt/disk2/tengjianping/doris-39/be/src/vec/functions/function.h:177:19
#9 0x55f5969387ea in
doris::vectorized::FunctionEqForNull::execute_impl(doris::FunctionContext*,
doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned
long>> const&, unsigned long, unsigned long) const
/mnt/disk2/tengjianping/doris-39/be/src/vec/functions/comparison_equal_for_null.cpp:103:30
#10 0x55f5960245c5 in
doris::vectorized::DefaultExecutable::execute_impl(doris::FunctionContext*,
doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned
long>> const&, unsigned long, unsigned long) const
/mnt/disk2/tengjianping/doris-39/be/src/vec/functions/function.h:506:26
#11 0x55f599bfb482 in
doris::vectorized::PreparedFunctionImpl::_execute_skipped_constant_deal(doris::FunctionContext*,
doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned
long>> const&, unsigned long, unsigned long, bool)
/mnt/disk2/tengjianping/doris-39/be/src/vec/functions/function.cpp:151:16
#12 0x55f599befb20 in
doris::vectorized::PreparedFunctionImpl::execute_without_low_cardinality_columns(doris::FunctionContext*,
doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned
long>> const&, unsigned long, unsigned long, bool)
/mnt/disk2/tengjianping/doris-39/be/src/vec/functions/function.cpp:262:12
#13 0x55f599befc3f in
doris::vectorized::PreparedFunctionImpl::execute(doris::FunctionContext*,
doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned
long>> const&, unsigned long, unsigned long, bool)
/mnt/disk2/tengjianping/doris-39/be/src/vec/functions/function.cpp:268:12
#14 0x55f59602140a in
doris::vectorized::IFunctionBase::execute(doris::FunctionContext*,
doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned
long>> const&, unsigned long, unsigned long, bool)
/mnt/disk2/tengjianping/doris-39/be/src/vec/functions/function.h:177:19
#15 0x55f59601168a in
doris::vectorized::VectorizedFnCall::execute(doris::vectorized::VExprContext*,
doris::vectorized::Block*, int*)
/mnt/disk2/tengjianping/doris-39/be/src/vec/exprs/vectorized_fn_call.cpp:164:5
#16 0x55f5960af67d in
doris::vectorized::VExprContext::execute(doris::vectorized::Block*, int*)
/mnt/disk2/tengjianping/doris-39/be/src/vec/exprs/vexpr_context.cpp:60:5
#17 0x55f5960b4d59 in
doris::vectorized::VExprContext::execute_conjuncts(std::vector<std::shared_ptr<doris::vectorized::VExprContext>,
std::allocator<std::shared_ptr<doris::vectorized::VExprContext>>> const&,
std::vector<doris::vectorized::PODArray<unsigned char, 4096ul, Allocator<false,
false, false>, 15ul, 16ul>*,
std::allocator<doris::vectorized::PODArray<unsigned char, 4096ul,
Allocator<false, false, false>, 15ul, 16ul>*>> const*, bool,
doris::vectorized::Block*, doris::vectorized::PODArray<unsigned char, 4096ul,
Allocator<false, false, false>, 15ul, 16ul>*, bool*)
/mnt/disk2/tengjianping/doris-39/be/src/vec/exprs/vexpr_context.cpp:167:9
#18 0x55f5960b5ed8 in
doris::vectorized::VExprContext::execute_conjuncts_and_filter_block(std::vector<std::shared_ptr<doris::vectorized::VExprContext>,
std::allocator<std::shared_ptr<doris::vectorized::VExprContext>>> const&,
doris::vectorized::Block*, std::vector<unsigned int, std::allocator<unsigned
int>>&, int, doris::vectorized::PODArray<unsigned char, 4096ul,
Allocator<false, false, false>, 15ul, 16ul>&)
/mnt/disk2/tengjianping/doris-39/be/src/vec/exprs/vexpr_context.cpp:276:5
#19 0x55f5771d5bc6 in
doris::segment_v2::SegmentIterator::_execute_common_expr(unsigned short*,
unsigned short&, doris::vectorized::Block*)
/mnt/disk2/tengjianping/doris-39/be/src/olap/rowset/segment_v2/segment_iterator.cpp:2199:5
#20 0x55f5771d2e81 in
doris::segment_v2::SegmentIterator::_next_batch_internal(doris::vectorized::Block*)
/mnt/disk2/tengjianping/doris-39/be/src/olap/rowset/segment_v2/segment_iterator.cpp:2128:17
#21 0x55f5771ccee3 in
doris::segment_v2::SegmentIterator::next_batch(doris::vectorized::Block*)::$_0::operator()()
const
/mnt/disk2/tengjianping/doris-39/be/src/olap/rowset/segment_v2/segment_iterator.cpp:1950:27
#22 0x55f5771cca3e in
doris::segment_v2::SegmentIterator::next_batch(doris::vectorized::Block*)
/mnt/disk2/tengjianping/doris-39/be/src/olap/rowset/segment_v2/segment_iterator.cpp:1950:19
#23 0x55f57730e74d in
doris::BetaRowsetReader::next_block(doris::vectorized::Block*)
/mnt/disk2/tengjianping/doris-39/be/src/olap/rowset/beta_rowset_reader.cpp:305:29
#24 0x55f5a54fcfcf in
doris::vectorized::VCollectIterator::Level0Iterator::_refresh()
/mnt/disk2/tengjianping/doris-39/be/src/vec/olap/vcollect_iterator.h:256:36
#25 0x55f5a54e9547 in
doris::vectorized::VCollectIterator::Level0Iterator::refresh_current_row()
/mnt/disk2/tengjianping/doris-39/be/src/vec/olap/vcollect_iterator.cpp:509:24
#26 0x55f5a54e9ee9 in
doris::vectorized::VCollectIterator::Level0Iterator::ensure_first_row_ref()
/mnt/disk2/tengjianping/doris-39/be/src/vec/olap/vcollect_iterator.cpp:488:14
#27 0x55f5a54f079e in
doris::vectorized::VCollectIterator::Level1Iterator::ensure_first_row_ref()
/mnt/disk2/tengjianping/doris-39/be/src/vec/olap/vcollect_iterator.cpp:687:27
#28 0x55f5a54e1362 in
doris::vectorized::VCollectIterator::build_heap(std::vector<std::shared_ptr<doris::RowsetReader>,
std::allocator<std::shared_ptr<doris::RowsetReader>>>&)
/mnt/disk2/tengjianping/doris-39/be/src/vec/olap/vcollect_iterator.cpp:183:9
#29 0x55f5a54841e1 in
doris::vectorized::BlockReader::_init_collect_iter(doris::TabletReader::ReaderParams
const&) /mnt/disk2/tengjianping/doris-39/be/src/vec/olap/block_reader.cpp:154:5
#30 0x55f5a548676e in
doris::vectorized::BlockReader::init(doris::TabletReader::ReaderParams const&)
/mnt/disk2/tengjianping/doris-39/be/src/vec/olap/block_reader.cpp:232:19
#31 0x55f5953180b9 in
doris::vectorized::NewOlapScanner::open(doris::RuntimeState*)
/mnt/disk2/tengjianping/doris-39/be/src/vec/exec/scan/new_olap_scanner.cpp:221:32
#32 0x55f595399cfb in
doris::vectorized::ScannerScheduler::_scanner_scan(doris::vectorized::ScannerScheduler*,
doris::vectorized::ScannerContext*,
std::shared_ptr<doris::vectorized::VScanner>)
/mnt/disk2/tengjianping/doris-39/be/src/vec/exec/scan/scanner_scheduler.cpp:363:27
#33 0x55f59539f55e in
doris::vectorized::ScannerScheduler::_schedule_scanners(doris::vectorized::ScannerContext*)::$_1::operator()()
const::'lambda2'()::operator()() const
/mnt/disk2/tengjianping/doris-39/be/src/vec/exec/scan/scanner_scheduler.cpp:264:35
#34 0x55f59539f414 in void std::__invoke_impl<void,
doris::vectorized::ScannerScheduler::_schedule_scanners(doris::vectorized::ScannerContext*)::$_1::operator()()
const::'lambda2'()&>(std::__invoke_other,
doris::vectorized::ScannerScheduler::_schedule_scanners(doris::vectorized::ScannerContext*)::$_1::operator()()
const::'lambda2'()&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61:14
#35 0x55f59539f3b4 in std::enable_if<is_invocable_r_v<void,
doris::vectorized::ScannerScheduler::_schedule_scanners(doris::vectorized::ScannerContext*)::$_1::operator()()
const::'lambda2'()&>, void>::type std::__invoke_r<void,
doris::vectorized::ScannerScheduler::_schedule_scanners(doris::vectorized::ScannerContext*)::$_1::operator()()
const::'lambda2'()&>(doris::vectorized::ScannerScheduler::_schedule_scanners(doris::vectorized::ScannerContext*)::$_1::operator()()
const::'lambda2'()&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:111:2
#36 0x55f59539f21c in std::_Function_handler<void (),
doris::vectorized::ScannerScheduler::_schedule_scanners(doris::vectorized::ScannerContext*)::$_1::operator()()
const::'lambda2'()>::_M_invoke(std::_Any_data const&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:291:9
#37 0x55f5767a60c2 in std::function<void ()>::operator()() const
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:560:9
#38 0x55f5767a7cbc in doris::WorkThreadPool<true>::work_thread(int)
/mnt/disk2/tengjianping/doris-39/be/src/util/work_thread_pool.hpp:159:17
#39 0x55f5767a9f12 in void std::__invoke_impl<void, void
(doris::WorkThreadPool<true>::* const&)(int), doris::WorkThreadPool<true>*&,
int&>(std::__invoke_memfun_deref, void (doris::WorkThreadPool<true>::*
const&)(int), doris::WorkThreadPool<true>*&, int&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:74:14
#40 0x55f5767a9de4 in std::__invoke_result<void
(doris::WorkThreadPool<true>::* const&)(int), doris::WorkThreadPool<true>*&,
int&>::type std::__invoke<void (doris::WorkThreadPool<true>::* const&)(int),
doris::WorkThreadPool<true>*&, int&>(void (doris::WorkThreadPool<true>::*
const&)(int), doris::WorkThreadPool<true>*&, int&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:96:14
#41 0x55f5767a9db4 in decltype(std::__invoke((*this)._M_pmf,
std::forward<doris::WorkThreadPool<true>*&>(fp), std::forward<int&>(fp)))
std::_Mem_fn_base<void (doris::WorkThreadPool<true>::*)(int),
true>::operator()<doris::WorkThreadPool<true>*&,
int&>(doris::WorkThreadPool<true>*&, int&) const
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:131:11
#42 0x55f5767a9d84 in void std::__invoke_impl<void, std::_Mem_fn<void
(doris::WorkThreadPool<true>::*)(int)>&, doris::WorkThreadPool<true>*&,
int&>(std::__invoke_other, std::_Mem_fn<void
(doris::WorkThreadPool<true>::*)(int)>&, doris::WorkThreadPool<true>*&, int&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61:14
#43 0x55f5767a9cd4 in std::enable_if<is_invocable_r_v<void,
std::_Mem_fn<void (doris::WorkThreadPool<true>::*)(int)>&,
doris::WorkThreadPool<true>*&, int&>, void>::type std::__invoke_r<void,
std::_Mem_fn<void (doris::WorkThreadPool<true>::*)(int)>&,
doris::WorkThreadPool<true>*&, int&>(std::_Mem_fn<void
(doris::WorkThreadPool<true>::*)(int)>&, doris::WorkThreadPool<true>*&, int&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:111:2
#44 0x55f5767a9c33 in void std::_Bind_result<void, std::_Mem_fn<void
(doris::WorkThreadPool<true>::*)(int)> (doris::WorkThreadPool<true>*,
int)>::__call<void, 0ul, 1ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul>)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:570:11
#45 0x55f5767a9a9d in void std::_Bind_result<void, std::_Mem_fn<void
(doris::WorkThreadPool<true>::*)(int)> (doris::WorkThreadPool<true>*,
int)>::operator()<>()
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:629:17
#46 0x55f5767a99b4 in void std::__invoke_impl<void,
std::_Bind_result<void, std::_Mem_fn<void
(doris::WorkThreadPool<true>::*)(int)> (doris::WorkThreadPool<true>*,
int)>>(std::__invoke_other, std::_Bind_result<void, std::_Mem_fn<void
(doris::WorkThreadPool<true>::*)(int)> (doris::WorkThreadPool<true>*, int)>&&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61:14
#47 0x55f5767a9974 in std::__invoke_result<std::_Bind_result<void,
std::_Mem_fn<void (doris::WorkThreadPool<true>::*)(int)>
(doris::WorkThreadPool<true>*, int)>>::type
std::__invoke<std::_Bind_result<void, std::_Mem_fn<void
(doris::WorkThreadPool<true>::*)(int)> (doris::WorkThreadPool<true>*,
int)>>(std::_Bind_result<void, std::_Mem_fn<void
(doris::WorkThreadPool<true>::*)(int)> (doris::WorkThreadPool<true>*, int)>&&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:96:14
#48 0x55f5767a994c in void
std::thread::_Invoker<std::tuple<std::_Bind_result<void, std::_Mem_fn<void
(doris::WorkThreadPool<true>::*)(int)> (doris::WorkThreadPool<true>*,
int)>>>::_M_invoke<0ul>(std::_Index_tuple<0ul>)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_thread.h:253:13
#49 0x55f5767a9924 in
std::thread::_Invoker<std::tuple<std::_Bind_result<void, std::_Mem_fn<void
(doris::WorkThreadPool<true>::*)(int)> (doris::WorkThreadPool<true>*,
int)>>>::operator()()
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_thread.h:260:11
#50 0x55f5767a98a8 in
std::thread::_State_impl<std::thread::_Invoker<std::tuple<std::_Bind_result<void,
std::_Mem_fn<void (doris::WorkThreadPool<true>::*)(int)>
(doris::WorkThreadPool<true>*, int)>>>>::_M_run()
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_thread.h:211:13
#51 0x55f5aaa7d50f in execute_native_thread_routine
/data/gcc-11.1.0/build/x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/../../../../../libstdc++-v3/src/c++11/thread.cc:82:18
#52 0x7f97365bb179 in start_thread pthread_create.c
#53 0x7f973706ddf2 in clone (/lib64/libc.so.6+0xfcdf2) (BuildId:
20ee73ce1b6ac38a52440bab82ec7e28f0f5c5b9)
0x60600331aee0 is located 0 bytes after 64-byte region
[0x60600331aea0,0x60600331aee0)
allocated by thread T489 (FragmentMgrThre) here:
#0 0x55f5765bbb7e in malloc
(/mnt/disk2/tengjianping/doris-39/output/be/lib/doris_be+0x20ca8b7e) (BuildId:
2800c1e5dc780dcf)
#1 0x55f5893ac034 in Allocator<false, false, false>::alloc_impl(unsigned
long, unsigned long)
/mnt/disk2/tengjianping/doris-39/be/src/vec/common/allocator.h:122:27
#2 0x55f5893abd44 in Allocator<false, false, false>::alloc(unsigned
long, unsigned long)
/mnt/disk2/tengjianping/doris-39/be/src/vec/common/allocator.cpp:200:12
#3 0x55f576f24c84 in void doris::vectorized::PODArrayBase<4ul, 4096ul,
Allocator<false, false, false>, 15ul, 16ul>::alloc<>(unsigned long)
/mnt/disk2/tengjianping/doris-39/be/src/vec/common/pod_array.h:142:63
#4 0x55f576f254f9 in void doris::vectorized::PODArrayBase<4ul, 4096ul,
Allocator<false, false, false>, 15ul, 16ul>::realloc<>(unsigned long)
/mnt/disk2/tengjianping/doris-39/be/src/vec/common/pod_array.h:161:13
#5 0x55f576f25491 in void doris::vectorized::PODArrayBase<4ul, 4096ul,
Allocator<false, false, false>, 15ul, 16ul>::reserve<>(unsigned long)
/mnt/disk2/tengjianping/doris-39/be/src/vec/common/pod_array.h:235:13
#6 0x55f584626060 in
doris::vectorized::ColumnVector<int>::reserve(unsigned long)
/mnt/disk2/tengjianping/doris-39/be/src/vec/columns/column_vector.h:345:44
#7 0x55f588e6d34b in doris::vectorized::ColumnNullable::reserve(unsigned
long)
/mnt/disk2/tengjianping/doris-39/be/src/vec/columns/column_nullable.cpp:478:25
#8 0x55f5894a0ee9 in
doris::vectorized::IDataType::create_column_const(unsigned long,
doris::vectorized::Field const&) const
/mnt/disk2/tengjianping/doris-39/be/src/vec/data_types/data_type.cpp:73:13
#9 0x55f5960ccdb3 in doris::vectorized::VLiteral::init(doris::TExprNode
const&) /mnt/disk2/tengjianping/doris-39/be/src/vec/exprs/vliteral.cpp:58:31
#10 0x55f5796896c1 in
doris::vectorized::VLiteral::VLiteral(doris::TExprNode const&, bool)
/mnt/disk2/tengjianping/doris-39/be/src/vec/exprs/vliteral.h:42:13
#11 0x55f59604bce5 in decltype(::new((void*)(0))
doris::vectorized::VLiteral(std::declval<doris::TExprNode const&>()))
std::construct_at<doris::vectorized::VLiteral, doris::TExprNode
const&>(doris::vectorized::VLiteral*, doris::TExprNode const&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_construct.h:97:39
#12 0x55f59604bcb0 in void
std::allocator_traits<std::allocator<doris::vectorized::VLiteral>>::construct<doris::vectorized::VLiteral,
doris::TExprNode const&>(std::allocator<doris::vectorized::VLiteral>&,
doris::vectorized::VLiteral*, doris::TExprNode const&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/alloc_traits.h:514:4
#13 0x55f59604bbc4 in
std::_Sp_counted_ptr_inplace<doris::vectorized::VLiteral,
std::allocator<doris::vectorized::VLiteral>,
(__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<doris::TExprNode
const&>(std::allocator<doris::vectorized::VLiteral>, doris::TExprNode const&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:519:4
#14 0x55f59604b8a9 in
std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<doris::vectorized::VLiteral,
std::allocator<doris::vectorized::VLiteral>, doris::TExprNode
const&>(doris::vectorized::VLiteral*&,
std::_Sp_alloc_shared_tag<std::allocator<doris::vectorized::VLiteral>>,
doris::TExprNode const&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:651:6
#15 0x55f59604b5f5 in std::__shared_ptr<doris::vectorized::VLiteral,
(__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<doris::vectorized::VLiteral>,
doris::TExprNode
const&>(std::_Sp_alloc_shared_tag<std::allocator<doris::vectorized::VLiteral>>,
doris::TExprNode const&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:1337:14
#16 0x55f59604b3e5 in
std::shared_ptr<doris::vectorized::VLiteral>::shared_ptr<std::allocator<doris::vectorized::VLiteral>,
doris::TExprNode
const&>(std::_Sp_alloc_shared_tag<std::allocator<doris::vectorized::VLiteral>>,
doris::TExprNode const&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr.h:409:4
#17 0x55f59604b222 in std::shared_ptr<doris::vectorized::VLiteral>
std::allocate_shared<doris::vectorized::VLiteral,
std::allocator<doris::vectorized::VLiteral>, doris::TExprNode
const&>(std::allocator<doris::vectorized::VLiteral> const&, doris::TExprNode
const&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr.h:860:14
#18 0x55f59604b00b in std::shared_ptr<doris::vectorized::VLiteral>
std::make_shared<doris::vectorized::VLiteral, doris::TExprNode
const&>(doris::TExprNode const&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr.h:876:14
#19 0x55f5960475ef in std::shared_ptr<doris::vectorized::VLiteral>
doris::vectorized::VLiteral::create_shared<doris::TExprNode
const&>(doris::TExprNode const&)
/mnt/disk2/tengjianping/doris-39/be/src/vec/exprs/vliteral.h:36:5
#20 0x55f59603173a in
doris::vectorized::VExpr::create_expr(doris::TExprNode const&,
std::shared_ptr<doris::vectorized::VExpr>&)
/mnt/disk2/tengjianping/doris-39/be/src/vec/exprs/vexpr.cpp:245:20
#21 0x55f596033441 in
doris::vectorized::VExpr::create_tree_from_thrift(std::vector<doris::TExprNode,
std::allocator<doris::TExprNode>> const&, int*,
std::shared_ptr<doris::vectorized::VExpr>&,
std::shared_ptr<doris::vectorized::VExprContext>&)
/mnt/disk2/tengjianping/doris-39/be/src/vec/exprs/vexpr.cpp:366:9
#22 0x55f596033e40 in
doris::vectorized::VExpr::create_expr_tree(doris::TExpr const&,
std::shared_ptr<doris::vectorized::VExprContext>&)
/mnt/disk2/tengjianping/doris-39/be/src/vec/exprs/vexpr.cpp:384:21
#23 0x55f5797cf2f0 in doris::ExecNode::init(doris::TPlanNode const&,
doris::RuntimeState*)
/mnt/disk2/tengjianping/doris-39/be/src/exec/exec_node.cpp:113:13
#24 0x55f5954805e6 in
doris::vectorized::VScanNode::init(doris::TPlanNode const&,
doris::RuntimeState*)
/mnt/disk2/tengjianping/doris-39/be/src/vec/exec/scan/vscan_node.cpp:93:5
#25 0x55f5797d4e17 in
doris::ExecNode::create_tree_helper(doris::RuntimeState*, doris::ObjectPool*,
std::vector<doris::TPlanNode, std::allocator<doris::TPlanNode>> const&,
doris::DescriptorTbl const&, doris::ExecNode*, int*, doris::ExecNode**)
/mnt/disk2/tengjianping/doris-39/be/src/exec/exec_node.cpp:304:5
#26 0x55f5797d42f3 in doris::ExecNode::create_tree(doris::RuntimeState*,
doris::ObjectPool*, doris::TPlan const&, doris::DescriptorTbl const&,
doris::ExecNode**)
/mnt/disk2/tengjianping/doris-39/be/src/exec/exec_node.cpp:252:5
#27 0x55f5a6ea6603 in
doris::pipeline::PipelineFragmentContext::prepare(doris::TPipelineFragmentParams
const&, unsigned long)
/mnt/disk2/tengjianping/doris-39/be/src/pipeline/pipeline_fragment_context.cpp:257:5
#28 0x55f579569b6f in
doris::FragmentMgr::exec_plan_fragment(doris::TPipelineFragmentParams const&,
std::function<void (doris::RuntimeState*, doris::Status*)>
const&)::$_1::operator()(int) const
/mnt/disk2/tengjianping/doris-39/be/src/runtime/fragment_mgr.cpp:902:44
#29 0x55f57957be89 in
doris::FragmentMgr::exec_plan_fragment(doris::TPipelineFragmentParams const&,
std::function<void (doris::RuntimeState*, doris::Status*)>
const&)::$_0::operator()() const
/mnt/disk2/tengjianping/doris-39/be/src/runtime/fragment_mgr.cpp:934:41
Thread T566 (_scanner_scan) created by T0 here:
#0 0x55f5765a3caa in pthread_create
(/mnt/disk2/tengjianping/doris-39/output/be/lib/doris_be+0x20c90caa) (BuildId:
2800c1e5dc780dcf)
#1 0x55f5aaa7d635 in __gthread_create
/data/gcc-11.1.0/build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:663:35
#2 0x55f5aaa7d635 in
std::thread::_M_start_thread(std::unique_ptr<std::thread::_State,
std::default_delete<std::thread::_State>>, void (*)())
/data/gcc-11.1.0/build/x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/../../../../../libstdc++-v3/src/c++11/thread.cc:147:37
#3 0x55f5767a8fa7 in std::_MakeUniq<std::thread>::__single_object
std::make_unique<std::thread, std::_Bind_result<void, std::_Mem_fn<void
(doris::WorkThreadPool<true>::*)(int)> (doris::WorkThreadPool<true>*,
int)>&>(std::_Bind_result<void, std::_Mem_fn<void
(doris::WorkThreadPool<true>::*)(int)> (doris::WorkThreadPool<true>*, int)>&)
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/unique_ptr.h:962:34
#4 0x55f5767a7638 in std::thread*
doris::ThreadGroup::create_thread<std::_Bind_result<void, std::_Mem_fn<void
(doris::WorkThreadPool<true>::*)(int)> (doris::WorkThreadPool<true>*,
int)>>(std::_Bind_result<void, std::_Mem_fn<void
(doris::WorkThreadPool<true>::*)(int)> (doris::WorkThreadPool<true>*, int)>)
/mnt/disk2/tengjianping/doris-39/be/src/util/thread_group.h:65:51
#5 0x55f5767a70a5 in
doris::WorkThreadPool<true>::WorkThreadPool(unsigned int, unsigned int,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>
const&) /mnt/disk2/tengjianping/doris-39/be/src/util/work_thread_pool.hpp:64:22
#6 0x55f5953ad546 in
std::_MakeUniq<doris::WorkThreadPool<true>>::__single_object
std::make_unique<doris::WorkThreadPool<true>, int&, int&, char const (&)
[11]>(int&, int&, char const (&) [11])
/mnt/disk2/tengjianping/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/unique_ptr.h:962:34
#7 0x55f59539365c in
doris::vectorized::ScannerScheduler::init(doris::ExecEnv*)
/mnt/disk2/tengjianping/doris-39/be/src/vec/exec/scan/scanner_scheduler.cpp:121:31
#8 0x55f57947e692 in doris::ExecEnv::_init(std::vector<doris::StorePath,
std::allocator<doris::StorePath>> const&,
std::set<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char>>, std::less<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char>>>,
std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char>>>> const&)
/mnt/disk2/tengjianping/doris-39/be/src/runtime/exec_env_init.cpp:233:34
#9 0x55f57947bd6f in doris::ExecEnv::init(doris::ExecEnv*,
std::vector<doris::StorePath, std::allocator<doris::StorePath>> const&,
std::set<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char>>, std::less<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char>>>,
std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char>>>> const&)
/mnt/disk2/tengjianping/doris-39/be/src/runtime/exec_env_init.cpp:140:17
#10 0x55f5765fe7cd in main
/mnt/disk2/tengjianping/doris-39/be/src/service/doris_main.cpp:486:14
#11 0x7f9736f94492 in __libc_start_main (/lib64/libc.so.6+0x23492)
(BuildId: 20ee73ce1b6ac38a52440bab82ec7e28f0f5c5b9)
Thread T489 (FragmentMgrThre) created by T0 here:
#0 0x55f5765a3caa in pthread_create
(/mnt/disk2/tengjianping/doris-39/output/be/lib/doris_be+0x20c90caa) (BuildId:
2800c1e5dc780dcf)
#1 0x55f57a06ca5f in
doris::Thread::start_thread(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char>> const&,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>
const&, std::function<void ()> const&, unsigned long,
scoped_refptr<doris::Thread>*)
/mnt/disk2/tengjianping/doris-39/be/src/util/thread.cpp:449:15
#2 0x55f57a0aeddd in doris::Status doris::Thread::create<void
(doris::ThreadPool::*)(), doris::ThreadPool*>(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char>> const&,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>
const&, void (doris::ThreadPool::* const&)(), doris::ThreadPool* const&,
scoped_refptr<doris::Thread>*)
/mnt/disk2/tengjianping/doris-39/be/src/util/thread.h:56:16
#3 0x55f57a0a052d in doris::ThreadPool::create_thread()
/mnt/disk2/tengjianping/doris-39/be/src/util/threadpool.cpp:611:12
#4 0x55f57a0a000b in doris::ThreadPool::init()
/mnt/disk2/tengjianping/doris-39/be/src/util/threadpool.cpp:265:25
#5 0x55f576862056 in doris::Status
doris::ThreadPoolBuilder::build<doris::ThreadPool>(std::unique_ptr<doris::ThreadPool,
std::default_delete<doris::ThreadPool>>*) const
/mnt/disk2/tengjianping/doris-39/be/src/util/threadpool.h:121:13
#6 0x55f579553093 in doris::FragmentMgr::FragmentMgr(doris::ExecEnv*)
/mnt/disk2/tengjianping/doris-39/be/src/runtime/fragment_mgr.cpp:131:18
#7 0x55f57947d598 in doris::ExecEnv::_init(std::vector<doris::StorePath,
std::allocator<doris::StorePath>> const&,
std::set<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char>>, std::less<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char>>>,
std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char>>>> const&)
/mnt/disk2/tengjianping/doris-39/be/src/runtime/exec_env_init.cpp:200:25
#8 0x55f57947bd6f in doris::ExecEnv::init(doris::ExecEnv*,
std::vector<doris::StorePath, std::allocator<doris::StorePath>> const&,
std::set<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char>>, std::less<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char>>>,
std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char>>>> const&)
/mnt/disk2/tengjianping/doris-39/be/src/runtime/exec_env_init.cpp:140:17
#9 0x55f5765fe7cd in main
/mnt/disk2/tengjianping/doris-39/be/src/service/doris_main.cpp:486:14
#10 0x7f9736f94492 in __libc_start_main (/lib64/libc.so.6+0x23492)
(BuildId: 20ee73ce1b6ac38a52440bab82ec7e28f0f5c5b9)
```
## Further comments
If this is a relatively large or complex change, kick off the discussion at
[[email protected]](mailto:[email protected]) by explaining why you
chose the solution you did and what alternatives you considered, etc...
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]