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
[[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]