doris icon indicating copy to clipboard operation
doris copied to clipboard

[Bug] fix cast(array<not_null(int)> as array<int>) causes be core dump

Open xy720 opened this issue 3 years ago • 0 comments

Search before asking

  • [X] I had searched in the issues and found no similar issues.

Version

master

What's Wrong?

cast(array<not_null(int)> as array) causes be core dump.

Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007fc5a0ca4f89 in __dynamic_cast ()
(gdb) bt
#0  0x00007fc5a0ca4f89 in __dynamic_cast ()
#1  0x00007fc59c69acc4 in doris::vectorized::ColumnVector<unsigned char>::insert_range_from (this=0x7fc5a436eba0, src=..., start=start@entry=0, length=length@entry=1) at /home/disk4/xuyang/work/baidu/bdg/doris/core/be/src/vec/columns/column_vector.cpp:254
#2  0x00007fc59c669714 in doris::vectorized::ColumnNullable::insert_range_from (this=0x7fc5acdc39e0, src=..., start=0, length=1) at /home/disk4/xuyang/work/baidu/bdg/doris/core/be/src/vec/common/cow.h:350
#3  0x00007fc59c64b861 in doris::vectorized::ColumnArray::insert_range_from (this=0x7fc5acdc3a70, src=..., start=0, length=1) at /home/disk4/xuyang/work/baidu/bdg/doris/core/be/src/vec/common/cow.h:349
#4  0x00007fc59c78a438 in doris::vectorized::MutableBlock::merge<doris::vectorized::Block&> (this=0x7fc54dd80d90, block=...) at /home/disk4/xuyang/work/baidu/bdg/doris/core/be/src/vec/common/cow.h:206
#5  0x00007fc59c7d86a8 in doris::vectorized::VUnionNode::get_next_const (this=this@entry=0x7fc5ac643680, state=state@entry=0x7fc5a4dc4000, block=block@entry=0x7fc5ace38370) at /home/disk4/xuyang/work/baidu/bdg/doris/core/be/src/vec/exec/vunion_node.cpp:200
#6  0x00007fc59c7d8eaa in doris::vectorized::VUnionNode::get_next (this=0x7fc5ac643680, state=0x7fc5a4dc4000, block=0x7fc5ace38370, eos=0x7fc5a4837549) at /home/disk4/xuyang/work/baidu/bdg/doris/core/be/src/vec/exec/vunion_node.cpp:241
#7  0x00007fc59bad6b02 in doris::PlanFragmentExecutor::get_vectorized_internal (this=this@entry=0x7fc5a4837470, block=block@entry=0x7fc54dd828f8) at /home/disk4/xuyang/work/baidu/bdg/doris/palo-toolchain/ldb_toolchain/include/c++/11/bits/unique_ptr.h:421
#8  0x00007fc59bada4fd in doris::PlanFragmentExecutor::open_vectorized_internal (this=this@entry=0x7fc5a4837470) at /home/disk4/xuyang/work/baidu/bdg/doris/core/be/src/runtime/plan_fragment_executor.cpp:283
#9  0x00007fc59badba3e in doris::PlanFragmentExecutor::open (this=this@entry=0x7fc5a4837470) at /home/disk4/xuyang/work/baidu/bdg/doris/core/be/src/runtime/plan_fragment_executor.cpp:239
#10 0x00007fc59babd1b5 in doris::FragmentExecState::execute (this=0x7fc5a4837400) at /home/disk4/xuyang/work/baidu/bdg/doris/core/be/src/runtime/fragment_mgr.cpp:246
#11 0x00007fc59bac0309 in doris::FragmentMgr::_exec_actual(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>) (this=this@entry=0x7fc5a41be540, exec_state=..., cb=...)
    at /home/disk4/xuyang/work/baidu/bdg/doris/palo-toolchain/ldb_toolchain/include/c++/11/bits/shared_ptr_base.h:1290
#12 0x00007fc59bac08fa in operator() (__closure=<optimized out>) at /home/disk4/xuyang/work/baidu/bdg/doris/palo-toolchain/ldb_toolchain/include/c++/11/ext/atomicity.h:109
#13 __invoke_impl<void, doris::FragmentMgr::exec_plan_fragment(const doris::TExecPlanFragmentParams&, doris::FragmentMgr::FinishCallback)::<lambda()>&> (__f=...) at /home/disk4/xuyang/work/baidu/bdg/doris/palo-toolchain/ldb_toolchain/include/c++/11/bits/invoke.h:61
#14 __invoke_r<void, doris::FragmentMgr::exec_plan_fragment(const doris::TExecPlanFragmentParams&, doris::FragmentMgr::FinishCallback)::<lambda()>&> (__fn=...) at /home/disk4/xuyang/work/baidu/bdg/doris/palo-toolchain/ldb_toolchain/include/c++/11/bits/invoke.h:111
#15 std::_Function_handler<void(), doris::FragmentMgr::exec_plan_fragment(const doris::TExecPlanFragmentParams&, doris::FragmentMgr::FinishCallback)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...)
    at /home/disk4/xuyang/work/baidu/bdg/doris/palo-toolchain/ldb_toolchain/include/c++/11/bits/std_function.h:291
#16 0x00007fc59bd66eed in operator() (this=<optimized out>) at /home/disk4/xuyang/work/baidu/bdg/doris/palo-toolchain/ldb_toolchain/include/c++/11/bits/std_function.h:556
#17 run (this=<optimized out>) at /home/disk4/xuyang/work/baidu/bdg/doris/core/be/src/util/threadpool.cpp:45
#18 doris::ThreadPool::dispatch_thread (this=0x7fc5a435d400) at /home/disk4/xuyang/work/baidu/bdg/doris/core/be/src/util/threadpool.cpp:540
#19 0x00007fc59bd5b9ef in operator() (this=0x7fc5a436d5f8) at /home/disk4/xuyang/work/baidu/bdg/doris/palo-toolchain/ldb_toolchain/include/c++/11/bits/std_function.h:556
#20 doris::Thread::supervise_thread (arg=0x7fc5a436d5e0) at /home/disk4/xuyang/work/baidu/bdg/doris/core/be/src/util/thread.cpp:408
#21 0x00007fc5967e7aa1 in start_thread () from /lib64/libpthread.so.0
#22 0x00007fc596ae5c4d in clone () from /lib64/libc.so.6

What You Expected?

work well

How to Reproduce?

set enable_vectorized_engine = true;

select cast([1] as array<tinyint>);

Anything Else?

No response

Are you willing to submit PR?

  • [X] Yes I am willing to submit a PR!

Code of Conduct

xy720 avatar Aug 10 '22 06:08 xy720