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 [d...@doris.apache.org](mailto:d...@doris.apache.org) 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: commits-unsubscr...@doris.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org