jacktengg opened a new pull request, #18737: URL: https://github.com/apache/doris/pull/18737
# Proposed changes Issue Number: close #xxx ## Problem summary Be coredump for the following case: ``` select /*+ SET_VAR(query_timeout = 600) */ ref_1.`sr_reason_sk` as c0, ref_1.`sr_return_tax` as c1, version() as c2, BITMAP_SUBSET_IN_RANGE( cast(TO_BITMAP( cast( sum( cast(ref_1.`sr_return_quantity` as int)) over (partition by ref_1.`sr_store_credit` order by ref_1.`sr_store_credit` desc ) as int)) as bitmap), cast(null as bigint), cast(BITMAP_MIN( cast(BITMAP_EMPTY() as bitmap)) as bigint)) as c3 from regression_test_tpcds_sf1_unique_p1.store_returns as ref_1 where true ``` The reason is that bug is introduced for optimization of const columns for some functions. coredump stack: ``` ==1324550==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x603024ea8b80 at pc 0 x55922e13fedf bp 0x7f281ad574f0 sp 0x7f281ad574e8 READ of size 1 at 0x603024ea8b80 thread T5758 (FragmentMgrThre) #0 0x55922e13fede in doris::vectorized::VectorizedUtils::update_null_map(doris::vector ized::PODArray<unsigned char, 4096ul, Allocator<false, false>, 15ul, 16ul>&, doris::vector ized::PODArray<unsigned char, 4096ul, Allocator<false, false>, 15ul, 16ul> const&) /mnt/di sk1/yuejing/projects/doris/be/src/vec/utils/util.hpp:73:21 #1 0x55922e133f59 in doris::vectorized::check_set_nullable(COW<doris::vectorized::ICol umn>::immutable_ptr<doris::vectorized::IColumn>&, COW<doris::vectorized::IColumn>::mutable _ptr<doris::vectorized::ColumnVector<unsigned char>>&) /mnt/disk1/yuejing/projects/doris/b e/src/vec/columns/column_nullable.cpp:642:9 #2 0x55923443de6c in doris::vectorized::FunctionBitmapSubs<doris::vectorized::BitmapSu bsetInRange>::execute_impl(doris::FunctionContext*, doris::vectorized::Block&, std::vector <unsigned long, std::allocator<unsigned long>> const&, unsigned long, unsigned long) /mnt/ disk1/yuejing/projects/doris/be/src/vec/functions/function_bitmap.cpp:1004:13 #3 0x55923304c4b5 in doris::vectorized::DefaultExecutable::execute_impl(doris::Functio nContext*, doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned l ong>> const&, unsigned long, unsigned long) /mnt/disk1/yuejing/projects/doris/be/src/vec/f unctions/function.h:464:26 #4 0x559235a5d6d2 in doris::vectorized::PreparedFunctionImpl::_execute_skipped_constan t_deal(doris::FunctionContext*, doris::vectorized::Block&, std::vector<unsigned long, std: :allocator<unsigned long>> const&, unsigned long, unsigned long, bool) /mnt/disk1/yuejing/ projects/doris/be/src/vec/functions/function.cpp:146:16 #5 0x559235a540e0 in doris::vectorized::PreparedFunctionImpl::execute_without_low_card inality_columns(doris::FunctionContext*, doris::vectorized::Block&, std::vector<unsigned l ong, std::allocator<unsigned long>> const&, unsigned long, unsigned long, bool) /mnt/disk1 /yuejing/projects/doris/be/src/vec/functions/function.cpp:257:12 #6 0x559235a541ff in doris::vectorized::PreparedFunctionImpl::execute(doris::FunctionC ontext*, doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned lon g>> const&, unsigned long, unsigned long, bool) /mnt/disk1/yuejing/projects/doris/be/src/v ec/functions/function.cpp:278:12 #7 0x55923304938a in doris::vectorized::IFunctionBase::execute(doris::FunctionContext* , doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned long>> con st&, unsigned long, unsigned long, bool) /mnt/disk1/yuejing/projects/doris/be/src/vec/func tions/function.h:159:19 #8 0x559232f534e2 in doris::vectorized::VectorizedFnCall::execute(doris::vectorized::V ExprContext*, doris::vectorized::Block*, int*) /mnt/disk1/yuejing/projects/doris/be/src/ve c/exprs/vectorized_fn_call.cpp:107:5 #9 0x559232f5fd82 in doris::vectorized::VExprContext::execute(doris::vectorized::Block , int) /mnt/disk1/yuejing/projects/doris/be/src/vec/exprs/vexpr_context.cpp:42:21 #10 0x559232f62d4e in doris::vectorized::VExprContext::get_output_block_after_execute_ exprs(std::vector<doris::vectorized::VExprContext*, std::allocator<doris::vectorized::VExp rContext*>> const&, doris::vectorized::Block const&, doris::Status&) /mnt/disk1/yuejing/pr ojects/doris/be/src/vec/exprs/vexpr_context.cpp:135:29 #11 0x559227caff5e in doris::vectorized::VMysqlResultWriter<false>::append_block(doris ::vectorized::Block&) /mnt/disk1/yuejing/projects/doris/be/src/vec/sink/vmysql_result_writ er.cpp:559:18 #12 0x55923eaaa613 in doris::vectorized::VResultSink::send(doris::RuntimeState*, doris ::vectorized::Block*, bool) /mnt/disk1/yuejing/projects/doris/be/src/vec/sink/vresult_sink .cpp:92:21 #13 0x5592278c7912 in doris::PlanFragmentExecutor::open_vectorized_internal() /mnt/dis k1/yuejing/projects/doris/be/src/runtime/plan_fragment_executor.cpp:303:34 #14 0x5592278c604b in doris::PlanFragmentExecutor::open() /mnt/disk1/yuejing/projects/ doris/be/src/runtime/plan_fragment_executor.cpp:245:14 #15 0x55922781e1ed in doris::FragmentExecState::execute() /mnt/disk1/yuejing/projects/ doris/be/src/runtime/fragment_mgr.cpp:230:31 #16 0x5592278280d2 in doris::FragmentMgr::_exec_actual(std::shared_ptr<doris::Fragment ExecState>, std::function<void (doris::RuntimeState*, doris::Status*)> const&) /mnt/disk1/ yuejing/projects/doris/be/src/runtime/fragment_mgr.cpp:495:29 #17 0x55922783e1bb in doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)> const&)::$_3::operator()() const /mnt/disk1/yuejing/projects/doris/be/src/runtime/fragment_mgr.cpp:746:17 #18 0x55922783e074 in void std::_invoke_impl<void, doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)> const&)::$_3&>(std::_invoke_other, doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)> const&)::$_3&) /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61:14 #19 0x55922783e014 in std::enable_if<is_invocable_r_v<void, doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)> const&)::$3&>, void>::type std::_invoke_r<void, doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)> const&)::$_3&>(doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)> const&)::$_3&) /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:111:2 #20 0x55922783dd7c in std::_Function_handler<void (), doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)> const&)::$_3>::_M_invoke(std::_Any_data const&) /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:291:9 #21 0x559224e3f782 in std::function<void ()>::operator()() const /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:560:9 #22 0x5592280a27d8 in doris::FunctionRunnable::run() /mnt/disk1/yuejing/projects/doris/be/src/util/threadpool.cpp:46:27 #23 0x55922808fec6 in doris::ThreadPool::dispatch_thread() /mnt/disk1/yuejing/projects/doris/be/src/util/threadpool.cpp:529:24 #24 0x5592280b5db3 in void std::_invoke_impl<void, void (doris::ThreadPool::&)(), doris::ThreadPool&>(std::_invoke_memfun_deref, void (doris::ThreadPool::&)(), doris::ThreadPool&) /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:74:14 #25 0x5592280b5c8c in std::_invoke_result<void (doris::ThreadPool::&)(), doris::ThreadPool&>::type std::_invoke<void (doris::ThreadPool::&)(), doris::ThreadPool&>(void (doris::ThreadPool::&)(), doris::ThreadPool&) /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:96:14 #26 0x5592280b5c14 in void std::Bind<void (doris::ThreadPool::* (doris::ThreadPool*))()>::_call<void, 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:420:11 #27 0x5592280b5abd in void std::_Bind<void (doris::ThreadPool::* (doris::ThreadPool*))()>::operator()<void>() /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:503:17 #28 0x5592280b59d4 in void std::_invoke_impl<void, std::_Bind<void (doris::ThreadPool::* (doris::ThreadPool*))()>&>(std::_invoke_other, std::_Bind<void (doris::ThreadPool::* (doris::ThreadPool*))()>&) /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61:14 #29 0x5592280b5974 in std::enable_if<is_invocable_r_v<void, std::Bind<void (doris::ThreadPool::* (doris::ThreadPool*))()>&>, void>::type std::_invoke_r<void, std::_Bind<void (doris::ThreadPool::* (doris::ThreadPool*))()>&>(std::_Bind<void (doris::ThreadPool::* (doris::ThreadPool*))()>&) /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:111:2 #30 0x5592280b569c in std::_Function_handler<void (), std::_Bind<void (doris::ThreadPool::* (doris::ThreadPool*))()>>::_M_invoke(std::_Any_data const&) /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:291:9 #31 0x559224e3f782 in std::function<void ()>::operator()() const /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:560:9 #32 0x559228066efe in doris::Thread::supervise_thread(void*) /mnt/disk1/yuejing/projects/doris/be/src/util/thread.cpp:453:5 #33 0x7f2dec967608 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x8608) (BuildId: f0983025f0e0f327a6da752ff4ffa675e0be393f) #34 0x7f2decbf6162 in __clone (/lib/x86_64-linux-gnu/libc.so.6+0x11f162) (BuildId: 9fdb74e7b217d06c93172a8243f8547f947ee6d1) 0x603024ea8b80 is located 0 bytes to the right of 32-byte region [0x603024ea8b60,0x603024ea8b80) allocated by thread T907 (brpc_light) here: #0 0x559224cddbee in malloc (/home/ubuntu/doris_master/output/be/lib/doris_be+0x139babee) (BuildId: 0d8d2d6c6a8cebe4) #1 0x5592250f13bc in Allocator<false, false>::alloc(unsigned long, unsigned long) /mnt/disk1/yuejing/projects/doris/be/src/vec/common/allocator.h:208:27 #2 0x5592265b4884 in void doris::vectorized::PODArrayBase<1ul, 4096ul, Allocator<false, false>, 15ul, 16ul>::alloc<>(unsigned long) /mnt/disk1/yuejing/projects/doris/be/src/vec/common/pod_array.h:123:63 #3 0x5592265b4679 in void doris::vectorized::PODArrayBase<1ul, 4096ul, Allocator<false, false>, 15ul, 16ul>::realloc<>(unsigned long) /mnt/disk1/yuejing/projects/doris/be/src/vec/common/pod_array.h:142:13 #4 0x5592251b84c1 in void doris::vectorized::PODArrayBase<1ul, 4096ul, Allocator<false, false>, 15ul, 16ul>::reserve<>(unsigned long) /mnt/disk1/yuejing/projects/doris/be/src/vec/common/pod_array.h:216:13 #5 0x55922e12d9f0 in doris::vectorized::ColumnNullable::reserve(unsigned long) /mnt/disk1/yuejing/projects/doris/be/src/vec/columns/column_nullable.cpp:427:26 #6 0x55922e6bc679 in doris::vectorized::IDataType::create_column_const(unsigned long, doris::vectorized::Field const&) const /mnt/disk1/yuejing/projects/doris/be/src/vec/data_types/data_type.cpp:59:13 #7 0x559232f710d2 in doris::vectorized::VLiteral::init(doris::TExprNode const&) /mnt/disk1/yuejing/projects/doris/be/src/vec/exprs/vliteral.cpp:192:31 #8 0x55922776469e in doris::vectorized::VLiteral::VLiteral(doris::TExprNode const&, bool) /mnt/disk1/yuejing/projects/doris/be/src/vec/exprs/vliteral.h:32:13 #9 0x559232f2b70e in doris::vectorized::VExpr::create_expr(doris::ObjectPool*, doris::TExprNode const&, doris::vectorized::VExpr**) /mnt/disk1/yuejing/projects/doris/be/src/vec/exprs/vexpr.cpp:133:31 #10 0x559232f2d6b5 in doris::vectorized::VExpr::create_tree_from_thrift(doris::ObjectPool*, std::vector<doris::TExprNode, std::allocator<doris::TExprNode>> const&, int*, doris::vectorized::VExpr*, doris::vectorized::VExprContext*) /mnt/disk1/yuejing/projects/doris/be/src/vec/exprs/vexpr.cpp:250:9 #11 0x559232f2e022 in doris::vectorized::VExpr::create_expr_tree(doris::ObjectPool*, doris::TExpr const&, doris::vectorized::VExprContext**) /mnt/disk1/yuejing/projects/doris/be/src/vec/exprs/vexpr.cpp:269:21 #12 0x559232f2e67f in doris::vectorized::VExpr::create_expr_trees(doris::ObjectPool*, std::vector<doris::TExpr, std::allocator<doris::TExpr>> const&, std::vector<doris::vectorized::VExprContext*, std::allocator<doris::vectorized::VExprContext*>>*) /mnt/disk1/yuejing/projects/doris/be/src/vec/exprs/vexpr.cpp:288:9 #13 0x55923eaa8c2f in doris::vectorized::VResultSink::prepare_exprs(doris::RuntimeState*) /mnt/disk1/yuejing/projects/doris/be/src/vec/sink/vresult_sink.cpp:46:5 #14 0x55923eaa93a8 in doris::vectorized::VResultSink::prepare(doris::RuntimeState*) /mnt/disk1/yuejing/projects/doris/be/src/vec/sink/vresult_sink.cpp:61:5 #15 0x5592278c42a8 in doris::PlanFragmentExecutor::prepare(doris::TExecPlanFragmentParams const&, doris::QueryFragmentsCtx*) /mnt/disk1/yuejing/projects/doris/be/src/runtime/plan_fragment_executor.cpp:190:9 #16 0x55922781da19 in doris::FragmentExecState::prepare(doris::TExecPlanFragmentParams const&) /mnt/disk1/yuejing/projects/doris/be/src/runtime/fragment_mgr.cpp:209:26 #17 0x55922782ba5e in doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)> const&) /mnt/disk1/yuejing/projects/doris/be/src/runtime/fragment_mgr.cpp:732:9 #18 0x5592278299d9 in doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&) /mnt/disk1/yuejing/projects/doris/be/src/runtime/fragment_mgr.cpp:553:16 #19 0x559227d206f0 in doris::PInternalServiceImpl::exec_plan_fragment(std::_cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, doris::PFragmentRequestVersion, bool) /mnt/disk1/yuejing/projects/doris/be/src/service/internal_service.cpp:371:13 #20 0x559227d1fa96 in doris::PInternalServiceImpl::exec_plan_fragment(google::protobuf::RpcController*, doris::PExecPlanFragmentRequest const*, doris::PExecPlanFragmentResult*, google::protobuf::Closure*) /mnt/disk1/yuejing/projects/doris/be/src/service/internal_service.cpp:214:10 #21 0x559227d40ec9 in doris::PInternalServiceImpl::exec_plan_fragment_prepare(google::protobuf::RpcController*, doris::PExecPlanFragmentRequest const*, doris::PExecPlanFragmentResult*, google::protobuf::Closure*)::$_9::operator()() const /mnt/disk1/yuejing/projects/doris/be/src/service/internal_service.cpp:226:9 #22 0x559227d40d64 in void std::_invoke_impl<void, doris::PInternalServiceImpl::exec_plan_fragment_prepare(google::protobuf::RpcController*, doris::PExecPlanFragmentRequest const*, doris::PExecPlanFragmentResult*, google::protobuf::Closure*)::$_9&>(std::_invoke_other, doris::PInternalServiceImpl::exec_plan_fragment_prepare(google::protobuf::RpcController*, doris::PExecPlanFragmentRequest const*, doris::PExecPlanFragmentResult*, google::protobuf::Closure*)::$_9&) /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61:14 #23 0x559227d40d04 in std::enable_if<is_invocable_r_v<void, doris::PInternalServiceImpl::exec_plan_fragment_prepare(google::protobuf::RpcController*, doris::PExecPlanFragmentRequest const*, doris::PExecPlanFragmentResult*, google::protobuf::Closure*)::$9&>, void>::type std::_invoke_r<void, doris::PInternalServiceImpl::exec_plan_fragment_prepare(google::protobuf::RpcController*, doris::PExecPlanFragmentRequest const*, doris::PExecPlanFragmentResult*, google::protobuf::Closure*)::$_9&>(doris::PInternalServiceImpl::exec_plan_fragment_prepare(google::protobuf::RpcController*, doris::PExecPlanFragmentRequest const*, doris::PExecPlanFragmentResult*, google::protobuf::Closure*)::$_9&) /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:111:2 #24 0x559227d40b6c in std::_Function_handler<void (), doris::PInternalServiceImpl::exec_plan_fragment_prepare(google::protobuf::RpcController*, doris::PExecPlanFragmentRequest const*, doris::PExecPlanFragmentResult*, google::protobuf::Closure*)::$_9>::_M_invoke(std::_Any_data const&) /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:291:9 #25 0x559224e3f782 in std::function<void ()>::operator()() const /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:560:9 #26 0x559224e413c2 in doris::PriorityThreadPool::work_thread(int) /mnt/disk1/yuejing/projects/doris/be/src/util/priority_thread_pool.hpp:146:17 #27 0x559224e435b2 in void std::_invoke_impl<void, void (doris::PriorityThreadPool::* const&)(int), doris::PriorityThreadPool*&, int&>(std::_invoke_memfun_deref, void (doris::PriorityThreadPool::* const&)(int), doris::PriorityThreadPool*&, int&) /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:74:14 #28 0x559224e43484 in std::_invoke_result<void (doris::PriorityThreadPool::* const&)(int), doris::PriorityThreadPool*&, int&>::type std::_invoke<void (doris::PriorityThreadPool::* const&)(int), doris::PriorityThreadPool*&, int&>(void (doris::PriorityThreadPool::* const&)(int), doris::PriorityThreadPool*&, int&) /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:96:14 #29 0x559224e43454 in decltype(std::__invoke((this)._M_pmf, std::forward<doris::PriorityThreadPool&>(fp), std::forward<int&>(fp))) std::_Mem_fn_base<void (doris::PriorityThreadPool::)(int), true>::operator()<doris::PriorityThreadPool&, int&>(doris::PriorityThreadPool*&, int&) const /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:131:11 Thread T5758 (FragmentMgrThre) created by T892 (brpc_light) here: #0 0x559224cc6a9c in pthread_create (/home/ubuntu/doris_master/output/be/lib/doris_be+0x139a3a9c) (BuildId: 0d8d2d6c6a8cebe4) #1 0x559228065f04 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/disk1/yuejing/projects/doris/be/src/util/thread.cpp:407:15 #2 0x559228099fad 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/disk1/yuejing/projects/doris/be/src/util/thread.h:57:16 #3 0x55922808d68d in doris::ThreadPool::create_thread() /mnt/disk1/yuejing/projects/doris/be/src/util/threadpool.cpp:597:12 #4 0x559228088236 in doris::ThreadPool::do_submit(std::shared_ptr<doris::Runnable>, doris::ThreadPoolToken*) /mnt/disk1/yuejing/projects/doris/be/src/util/threadpool.cpp:437:25 #5 0x55922808db37 in doris::ThreadPool::submit(std::shared_ptr<doris::Runnable>) /mnt/disk1/yuejing/projects/doris/be/src/util/threadpool.cpp:339:12 #6 0x55922808dd3c in doris::ThreadPool::submit_func(std::function<void ()>) /mnt/disk1/yuejing/projects/doris/be/src/util/threadpool.cpp:343:12 #7 0x55922782bf3d in doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)> const&) /mnt/disk1/yuejing/projects/doris/be/src/runtime/fragment_mgr.cpp:743:29 #8 0x5592278299d9 in doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&) /mnt/disk1/yuejing/projects/doris/be/src/runtime/fragment_mgr.cpp:553:16 #9 0x559227d206f0 in doris::PInternalServiceImpl::exec_plan_fragment(std::_cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, doris::PFragmentRequestVersion, bool) /mnt/disk1/yuejing/projects/doris/be/src/service/internal_service.cpp:371:13 #10 0x559227d1fa96 in doris::PInternalServiceImpl::exec_plan_fragment(google::protobuf::RpcController*, doris::PExecPlanFragmentRequest const*, doris::PExecPlanFragmentResult*, google::protobuf::Closure*) /mnt/disk1/yuejing/projects/doris/be/src/service/internal_service.cpp:214:10 #11 0x559227d40ec9 in doris::PInternalServiceImpl::exec_plan_fragment_prepare(google::protobuf::RpcController*, doris::PExecPlanFragmentRequest const*, doris::PExecPlanFragmentResult*, google::protobuf::Closure*)::$_9::operator()() const /mnt/disk1/yuejing/projects/doris/be/src/service/internal_service.cpp:226:9 #12 0x559227d40d64 in void std::_invoke_impl<void, doris::PInternalServiceImpl::exec_plan_fragment_prepare(google::protobuf::RpcController*, doris::PExecPlanFragmentRequest const*, doris::PExecPlanFragmentResult*, google::protobuf::Closure*)::$_9&>(std::_invoke_other, doris::PInternalServiceImpl::exec_plan_fragment_prepare(google::protobuf::RpcController*, doris::PExecPlanFragmentRequest const*, doris::PExecPlanFragmentResult*, google::protobuf::Closure*)::$_9&) /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61:14 #13 0x559227d40d04 in std::enable_if<is_invocable_r_v<void, doris::PInternalServiceImpl::exec_plan_fragment_prepare(google::protobuf::RpcController*, doris::PExecPlanFragmentRequest const*, doris::PExecPlanFragmentResult*, google::protobuf::Closure*)::$9&>, void>::type std::_invoke_r<void, doris::PInternalServiceImpl::exec_plan_fragment_prepare(google::protobuf::RpcController*, doris::PExecPlanFragmentRequest const*, doris::PExecPlanFragmentResult*, google::protobuf::Closure*)::$_9&>(doris::PInternalServiceImpl::exec_plan_fragment_prepare(google::protobuf::RpcController*, doris::PExecPlanFragmentRequest const*, doris::PExecPlanFragmentResult*, google::protobuf::Closure*)::$_9&) /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:111:2 #14 0x559227d40b6c in std::_Function_handler<void (), doris::PInternalServiceImpl::exec_plan_fragment_prepare(google::protobuf::RpcController*, doris::PExecPlanFragmentRequest const*, doris::PExecPlanFragmentResult*, google::protobuf::Closure*)::$_9>::_M_invoke(std::_Any_data const&) /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:291:9 #15 0x559224e3f782 in std::function<void ()>::operator()() const /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:560:9 #16 0x559224e413c2 in doris::PriorityThreadPool::work_thread(int) /mnt/disk1/yuejing/projects/doris/be/src/util/priority_thread_pool.hpp:146:17 #17 0x559224e435b2 in void std::_invoke_impl<void, void (doris::PriorityThreadPool::const&)(int), doris::PriorityThreadPool&, int&>(std::_invoke_memfun_deref, void (doris::PriorityThreadPool::* const&)(int), doris::PriorityThreadPool*&, int&) /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:74:14 #18 0x559224e43484 in std::_invoke_result<void (doris::PriorityThreadPool::* const&)(int), doris::PriorityThreadPool*&, int&>::type std::_invoke<void (doris::PriorityThreadPool::* const&)(int), doris::PriorityThreadPool*&, int&>(void (doris::PriorityThreadPool::* const&)(int), doris::PriorityThreadPool*&, int&) /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:96:14 #19 0x559224e43454 in decltype(std::__invoke((this)._M_pmf, std::forward<doris::PriorityThreadPool&>(fp), std::forward<int&>(fp))) std::_Mem_fn_base<void (doris::PriorityThreadPool::)(int), true>::operator()<doris::PriorityThreadPool&, int&>(doris::PriorityThreadPool*&, int&) const /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:131:11 #20 0x559224e43424 in void std::_invoke_impl<void, std::_Mem_fn<void (doris::PriorityThreadPool::)(int)>&, doris::PriorityThreadPool&, int&>(std::_invoke_other, std::_Mem_fn<void (doris::PriorityThreadPool::)(int)>&, doris::PriorityThreadPool&, int&) /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61:14 #21 0x559224e43374 in std::enable_if<is_invocable_r_v<void, std::Mem_fn<void (doris::PriorityThreadPool::)(int)>&, doris::PriorityThreadPool&, int&>, void>::type std::_invoke_r<void, std::_Mem_fn<void (doris::PriorityThreadPool::)(int)>&, doris::PriorityThreadPool&, int&>(std::_Mem_fn<void (doris::PriorityThreadPool::)(int)>&, doris::PriorityThreadPool&, int&) /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:111:2 #22 0x559224e432d3 in void std::Bind_result<void, std::_Mem_fn<void (doris::PriorityThreadPool::)(int)> (doris::PriorityThreadPool, int)>::_call<void, 0ul, 1ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul>) /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:570:11 #23 0x559224e4313d in void std::_Bind_result<void, std::_Mem_fn<void (doris::PriorityThreadPool::)(int)> (doris::PriorityThreadPool, int)>::operator()<>() /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:629:17 #24 0x559224e43054 in void std::_invoke_impl<void, std::_Bind_result<void, std::_Mem_fn<void (doris::PriorityThreadPool::)(int)> (doris::PriorityThreadPool, int)>>(std::_invoke_other, std::_Bind_result<void, std::_Mem_fn<void (doris::PriorityThreadPool::)(int)> (doris::PriorityThreadPool, int)>&&) /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61:14 #25 0x559224e43014 in std::_invoke_result<std::_Bind_result<void, std::_Mem_fn<void (doris::PriorityThreadPool::)(int)> (doris::PriorityThreadPool, int)>>::type std::_invoke<std::_Bind_result<void, std::_Mem_fn<void (doris::PriorityThreadPool::)(int)> (doris::PriorityThreadPool, int)>>(std::_Bind_result<void, std::_Mem_fn<void (doris::PriorityThreadPool::)(int)> (doris::PriorityThreadPool, int)>&&) /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:96:14 #26 0x559224e42fec in void std::thread::_Invoker<std::tuple<std::_Bind_result<void, std::_Mem_fn<void (doris::PriorityThreadPool::)(int)> (doris::PriorityThreadPool, int)>>>::_M_invoke<0ul>(std::_Index_tuple<0ul>) /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_thread.h:253:13 #27 0x559224e42fc4 in std::thread::_Invoker<std::tuple<std::_Bind_result<void, std::_Mem_fn<void (doris::PriorityThreadPool::)(int)> (doris::PriorityThreadPool, int)>>>::operator()() /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_thread.h:260:11 #28 0x559224e42f48 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<std::_Bind_result<void, std::_Mem_fn<void (doris::PriorityThreadPool::)(int)> (doris::PriorityThreadPool, int)>>>>::_M_run() /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_thread.h:211:13 #29 0x559242c6fc3f in execute_native_thread_routine raw_logging.cc Thread T892 (brpc_light) created by T0 here: #0 0x559224cc6a9c in pthread_create (/home/ubuntu/doris_master/output/be/lib/doris_be+0x139a3a9c) (BuildId: 0d8d2d6c6a8cebe4) #1 0x559242c6fd65 in std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State>>, void ()) (/home/ubuntu/doris_master/output/be/lib/doris_be+0x3194cd65) (BuildId: 0d8d2d6c6a8cebe4) #2 0x559224e428d7 in std::MakeUniq<std::thread>::_single_object std::make_unique<std::thread, std::_Bind_result<void, std::_Mem_fn<void (doris::PriorityThreadPool::)(int)> (doris::PriorityThreadPool, int)>&>(std::_Bind_result<void, std::_Mem_fn<void (doris::PriorityThreadPool::)(int)> (doris::PriorityThreadPool, int)>&) /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/unique_ptr.h:962:34 #3 0x559224e40c98 in std::thread* doris::ThreadGroup::create_thread<std::_Bind_result<void, std::_Mem_fn<void (doris::PriorityThreadPool::)(int)> (doris::PriorityThreadPool, int)>>(std::_Bind_result<void, std::_Mem_fn<void (doris::PriorityThreadPool::)(int)> (doris::PriorityThreadPool, int)>) /mnt/disk1/yuejing/projects/doris/be/src/util/thread_group.h:65:51 #4 0x559224e40765 in doris::PriorityThreadPool::PriorityThreadPool(unsigned int, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&) /mnt/disk1/yuejing/projects/doris/be/src/util/priority_thread_pool.hpp:60:22 #5 0x559227d1b5d7 in doris::PInternalServiceImpl::PInternalServiceImpl(doris::ExecEnv*) /mnt/disk1/yuejing/projects/doris/be/src/service/internal_service.cpp:124:11 #6 0x559227c464f0 in doris::BRpcService::start(int, int) /mnt/disk1/yuejing/projects/doris/be/src/service/brpc_service.cpp:46:29 #7 0x559224d1fe08 in main /mnt/disk1/yuejing/projects/doris/be/src/service/doris_main.cpp:474:27 #8 0x7f2decafb0b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x240b2) (BuildId: 9fdb74e7b217d06c93172a8243f8547f947ee6d1) Thread T907 (brpc_light) created by T0 here: #0 0x559224cc6a9c in pthread_create (/home/ubuntu/doris_master/output/be/lib/doris_be+0x139a3a9c) (BuildId: 0d8d2d6c6a8cebe4) #1 0x559242c6fd65 in std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State>>, void ()) (/home/ubuntu/doris_master/output/be/lib/doris_be+0x3194cd65) (BuildId: 0d8d2d6c6a8cebe4) #2 0x559224e428d7 in std::MakeUniq<std::thread>::_single_object std::make_unique<std::thread, std::_Bind_result<void, std::_Mem_fn<void (doris::PriorityThreadPool::)(int)> (doris::PriorityThreadPool, int)>&>(std::_Bind_result<void, std::_Mem_fn<void (doris::PriorityThreadPool::)(int)> (doris::PriorityThreadPool, int)>&) /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/unique_ptr.h:962:34 #3 0x559224e40c98 in std::thread* doris::ThreadGroup::create_thread<std::_Bind_result<void, std::_Mem_fn<void (doris::PriorityThreadPool::)(int)> (doris::PriorityThreadPool, int)>>(std::_Bind_result<void, std::_Mem_fn<void (doris::PriorityThreadPool::)(int)> (doris::PriorityThreadPool, int)>) /mnt/disk1/yuejing/projects/doris/be/src/util/thread_group.h:65:51 #4 0x559224e40765 in doris::PriorityThreadPool::PriorityThreadPool(unsigned int, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&) /mnt/disk1/yuejing/projects/doris/be/src/util/priority_thread_pool.hpp:60:22 #5 0x559227d1b5d7 in doris::PInternalServiceImpl::PInternalServiceImpl(doris::ExecEnv*) /mnt/disk1/yuejing/projects/doris/be/src/service/internal_service.cpp:124:11 #6 0x559227c464f0 in doris::BRpcService::start(int, int) /mnt/disk1/yuejing/projects/doris/be/src/service/brpc_service.cpp:46:29 #7 0x559224d1fe08 in main /mnt/disk1/yuejing/projects/doris/be/src/service/doris_main.cpp:474:27 #8 0x7f2decafb0b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x240b2) (BuildId: 9fdb74e7b217d06c93172a8243f8547f947ee6d1) SUMMARY: AddressSanitizer: heap-buffer-overflow /mnt/disk1/yuejing/projects/doris/be/src/vec/utils/util.hpp:73:21 in doris::vectorized::VectorizedUtils::update_null_map(doris::vectorized::PODArray<unsigned char, 4096ul, Allocator<false, false>, 15ul, 16ul>&, doris::vectorized::PODArray<unsigned char, 4096ul, Allocator<false, false>, 15ul, 16ul> const&) ``` ## Checklist(Required) * [ ] Does it affect the original behavior * [ ] Has unit tests been added * [ ] Has document been added or modified * [ ] Does it need to update dependencies * [ ] Is this PR support rollback (If NO, please explain WHY) ## 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