Skip to content

[Bug] illegal expression cause BE crash #14770

@Gabriel39

Description

@Gabriel39

Search before asking

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

Version

master

What's Wrong?

F1202 15:56:36.739024 90405 column_const.cpp:53] Size of filter (4) doesn't match size of column (3)
0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t*, void*) at /mnt/disk1/yuejing/projects/doris/be/src/common/signal_handler.h:420
1# 0x00007F8AA8618400 in /lib64/libc.so.6
2# gsignal in /lib64/libc.so.6
3# abort in /lib64/libc.so.6
4# 0x000000001D1D65B9 in /mnt/disk1/yuejing/projects/doris/output/be/lib/doris_be
5# 0x000000001D1CBBCD in /mnt/disk1/yuejing/projects/doris/output/be/lib/doris_be
6# google::LogMessage::SendToLog() in /mnt/disk1/yuejing/projects/doris/output/be/lib/doris_be
7# google::LogMessage::Flush() in /mnt/disk1/yuejing/projects/doris/output/be/lib/doris_be
8# google::LogMessageFatal::~LogMessageFatal() in /mnt/disk1/yuejing/projects/doris/output/be/lib/doris_be
9# doris::vectorized::ColumnConst::filter(doris::vectorized::PODArray<unsigned char, 4096ul, Allocator<false, false>, 15ul, 16ul> const&, long) const in /mnt/disk1/yuejing/projects/doris/output/be/lib/doris_be
10# doris::vectorized::Block::filter_block_internal(doris::vectorized::Block*, std::vector<unsigned int, std::allocator > const&, doris::vectorized::PODArray<unsigned char, 4096ul, Allocator<false, false>, 15ul, 16ul> const&) at /mnt/disk1/yuejing/projects
/doris/be/src/vec/core/block.cpp:629
11# doris::vectorized::Block::filter_block(doris::vectorized::Block*, std::vector<unsigned int, std::allocator > const&,
int, int) at /mnt/disk1/yuejing/projects/doris/be/src/vec/core/block.cpp:700
12# doris::vectorized::Block::filter_block(doris::vectorized::Block*, int, int) at /mnt/disk1/yuejing/projects/doris/be/src/vec/core/bl
ock.cpp:713
13# doris::vectorized::VExprContext::filter_block(std::unique_ptr<doris::vectorized::VExprContext*, std::default_delete<doris::vectoriz
ed::VExprContext*> > const&, doris::vectorized::Block*, int) at /mnt/disk1/yuejing/projects/doris/be/src/vec/exprs/vexpr_context.cpp:13
3
14# doris::vectorized::VNestedLoopJoinNode::get_next(doris::RuntimeState*, doris::vectorized::Block*, bool*) at /mnt/disk1/yuejing/proj
ects/doris/be/src/vec/exec/join/vnested_loop_join_node.cpp:322
15# doris::ExecNode::get_next_after_projects(doris::RuntimeState*, doris::vectorized::Block*, bool*) in /mnt/disk1/yuejing/projects/dor
is/output/be/lib/doris_be
16# doris::vectorized::VSortNode::open(doris::RuntimeState*) at /mnt/disk1/yuejing/projects/doris/be/src/vec/exec/vsort_node.cpp:91
17# doris::PlanFragmentExecutor::open_vectorized_internal() at /mnt/disk1/yuejing/projects/doris/be/src/runtime/plan_fragment_executor.
cpp:278
18# doris::PlanFragmentExecutor::open() at /mnt/disk1/yuejing/projects/doris/be/src/runtime/plan_fragment_executor.cpp:250
19# doris::FragmentExecState::execute() at /mnt/disk1/yuejing/projects/doris/be/src/runtime/fragment_mgr.cpp:251
20# doris::FragmentMgr::_exec_actual(std::shared_ptrdoris::FragmentExecState, std::function<void (doris::PlanFragmentExecutor*)>) at
/mnt/disk1/yuejing/projects/doris/be/src/runtime/fragment_mgr.cpp:498
21# doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::PlanFragmentExecutor*)>)::
$_3::operator()() const at /mnt/disk1/yuejing/projects/doris/be/src/runtime/fragment_mgr.cpp:718
22# void std::__invoke_impl<void, doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (dor
is::PlanFragmentExecutor*)>)::$3&>(std::_invoke_other, doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&,
std::function<void (doris::PlanFragmentExecutor*)>)::$_3&) at /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu
/11/../../../../include/c++/11/bits/invoke.h:61
23# std::enable_if<is_invocable_r_v<void, doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<v
oid (doris::PlanFragmentExecutor*)>)::$3&>, void>::type std::_invoke_r<void, doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanF
ragmentParams const&, std::function<void (doris::PlanFragmentExecutor*)>)::$_3&>(doris::FragmentMgr::exec_plan_fragment(doris::TExecPla
nFragmentParams const&, std::function<void (doris::PlanFragmentExecutor*)>)::$_3&) at /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../
lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:117
24# std::_Function_handler<void (), doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (d
oris::PlanFragmentExecutor*)>)::$3>::_M_invoke(std::_Any_data const&) at /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86
64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:291
25# std::function<void ()>::operator()() const at /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../..
/../include/c++/11/bits/std_function.h:560
26# doris::FunctionRunnable::run() at /mnt/disk1/yuejing/projects/doris/be/src/util/threadpool.cpp:45
27# doris::ThreadPool::dispatch_thread() at /mnt/disk1/yuejing/projects/doris/be/src/util/threadpool.cpp:534
28# void std::_invoke_impl<void, void (doris::ThreadPool::&)(), doris::ThreadPool&>(std::_invoke_memfun_deref, void (doris::ThreadP
ool::&)(), doris::ThreadPool&) at /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c+
+/11/bits/invoke.h:74
29# std::_invoke_result<void (doris::ThreadPool::&)(), doris::ThreadPool&>::type std::_invoke<void (doris::ThreadPool::&)(), doris
::ThreadPool
&>(void (doris::ThreadPool::&)(), doris::ThreadPool&) at /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64
-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:96
30# void std::Bind<void (doris::ThreadPool::(doris::ThreadPool))()>::_call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) at
/mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:420
31# void std::_Bind<void (doris::ThreadPool::(doris::ThreadPool))()>::operator()<, void>() at /mnt/disk1/yuejing/projects/ldb_toolcha
in/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:503
32# void std::_invoke_impl<void, std::_Bind<void (doris::ThreadPool::(doris::ThreadPool))()>&>(std::_invoke_other, std::_Bind<void
(doris::ThreadPool::(doris::ThreadPool))()>&) at /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../.
./../include/c++/11/bits/invoke.h:61
33# 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))()>&) a
t /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:117
34# std::_Function_handler<void (), std::_Bind<void (doris::ThreadPool::(doris::ThreadPool))()> >::_M_invoke(std::_Any_data const&) a
t /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:291
35# std::function<void ()>::operator()() const at /mnt/disk1/yuejing/projects/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../..
/../include/c++/11/bits/std_function.h:560
36# doris::Thread::supervise_thread(void*) at /mnt/disk1/yuejing/projects/doris/be/src/util/thread.cpp:454
37# start_thread in /lib64/libpthread.so.0
38# clone in /lib64/libc.so.6

What You Expected?

works well

How to Reproduce?

No response

Anything Else?

No response

Are you willing to submit PR?

  • Yes I am willing to submit a PR!

Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions