apache / doris

Apache Doris is an easy-to-use, high performance and unified analytics database.
https://doris.apache.org
Apache License 2.0
12.63k stars 3.26k forks source link

[Bug] BE crash when doing a query in branch-1.1-lts (2022.10.27 last commit) #13748

Open lide-reed opened 2 years ago

lide-reed commented 2 years ago

Search before asking

Version

branch 1.1-lts 10.27 the last commit as following:

commit 87ff01907c1f34a7c408115b8d19233d69b98f75 (branch-1.1-lts) Author: Zhengguo Yang yangzhgg@gmail.com Date: Thu Oct 27 09:07:00 2022 +0800

[fix](String) fix string type length set to -1 when load string data (#13475) (#13696)

string type length may set to -1 when create TypeDescriptor from thrift or protobuf, this will cause check limit overflow
cherry-pick #13475

What's Wrong?

start time: 2022年 10月 28日 星期五 03:40:25 CST WARNING: Logging before InitGoogleLogging() is written to STDERR I1028 03:40:25.767030 408239 env.cpp:46] Env init successfully. Aborted at 1666921115 (unix time) try "date -d @1666921115" if you are using GNU date SIGSEGV unkown detail explain (@0x0) received by PID 408239 (TID 0x7ff795ffb700) from PID 0; stack trace: 0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t, void) at /data/doris-1.x/be/src/common/signal_handler.h:420 1# 0x00007FF8C9822400 in /lib64/libc.so.6 2# doris::BlockBloomFilter::bucket_insert_avx2(unsigned int, unsigned int) at /data/doris-1.x/be/src/exprs/block_bloom_filter_avx_impl.cc:42 3# doris::IRuntimeFilter::insert(StringRef const&) at /data/doris-1.x/be/src/exprs/runtime_filter.cpp:941 4# doris::RuntimeFilterSlotsBase::insert(std::unordered_map<doris::vectorized::Block const, std::vector<int, std::allocator >, std::hash<doris::vectorized::Block const>, std::equal_to<doris::vectorized::Block const>, std::allocator<std::pair<doris::vectorized::Block const const, std::vector<int, std::allocator > > > >&) at /data/doris-1.x/be/src/exprs/runtime_filter_slots.h:180 5# doris::vectorized::ProcessRuntimeFilterBuild::operator()(doris::RuntimeState, doris::vectorized::SerializedHashTableContext&) at /data/doris-1.x/be/src/vec/exec/join/vhash_join_node.cpp:147 6# std::detail::variant::gen_vtable_impl<std::detail::variant::_Multi_array<std::detail::variant::deduce_visit_result ()(doris::vectorized::HashJoinNode::_hash_table_build(doris::RuntimeState)::{lambda(auto:1&&)#1}&&, std::variant<std::monostate, doris::vectorized::SerializedHashTableContext, doris::vectorized::PrimaryTypeHashTableContext, doris::vectorized::PrimaryTypeHashTableContext, doris::vectorized::PrimaryTypeHashTableContext, doris::vectorized::PrimaryTypeHashTableContext, doris::vectorized::PrimaryTypeHashTableContext, doris::vectorized::PrimaryTypeHashTableContext, doris::vectorized::FixedKeyHashTableContext<unsigned long, true>, doris::vectorized::FixedKeyHashTableContext<unsigned long, false>, doris::vectorized::FixedKeyHashTableContext<doris::vectorized::UInt128, true>, doris::vectorized::FixedKeyHashTableContext<doris::vectorized::UInt128, false>, doris::vectorized::FixedKeyHashTableContext<doris::vectorized::UInt256, true>, doris::vectorized::FixedKeyHashTableContext<doris::vectorized::UInt256, false> >&)>, std::integer_sequence<unsigned long, 1ul> >::__visit_invoke(doris::vectorized::HashJoinNode::_hash_table_build(doris::RuntimeState)::{lambda(auto:1&&)#1}&&, std::variant<std::monostate, doris::vectorized::SerializedHashTableContext, doris::vectorized::PrimaryTypeHashTableContext, doris::vectorized::PrimaryTypeHashTableContext, doris::vectorized::PrimaryTypeHashTableContext, doris::vectorized::PrimaryTypeHashTableContext, doris::vectorized::PrimaryTypeHashTableContext, doris::vectorized::PrimaryTypeHashTableContext, doris::vectorized::FixedKeyHashTableContext<unsigned long, true>, doris::vectorized::FixedKeyHashTableContext<unsigned long, false>, doris::vectorized::FixedKeyHashTableContext<doris::vectorized::UInt128, true>, doris::vectorized::FixedKeyHashTableContext<doris::vectorized::UInt128, false>, doris::vectorized::FixedKeyHashTableContext<doris::vectorized::UInt256, true>, doris::vectorized::FixedKeyHashTableContext<doris::vectorized::UInt256, false> >&) at /var/local/ldb-toolchain/include/c++/11/variant:1020 7# doris::vectorized::HashJoinNode::_hash_table_build(doris::RuntimeState) at /data/doris-1.x/be/src/vec/exec/join/vhash_join_node.cpp:1192 8# doris::vectorized::HashJoinNode::open(doris::RuntimeState) at /data/doris-1.x/be/src/vec/exec/join/vhash_join_node.cpp:1124 9# doris::vectorized::HashJoinNode::open(doris::RuntimeState) at /data/doris-1.x/be/src/vec/exec/join/vhash_join_node.cpp:1125 10# doris::PlanFragmentExecutor::open_vectorized_internal() at /data/doris-1.x/be/src/runtime/plan_fragment_executor.cpp:286 11# doris::PlanFragmentExecutor::open() at /data/doris-1.x/be/src/runtime/plan_fragment_executor.cpp:259 12# doris::FragmentExecState::execute() at /data/doris-1.x/be/src/runtime/fragment_mgr.cpp:248 13# doris::FragmentMgr::_exec_actual(std::shared_ptr, std::function<void (doris::PlanFragmentExecutor)>) at /data/doris-1.x/be/src/runtime/fragment_mgr.cpp:480 14# std::_Function_handler<void (), std::_Bind_result<void, void (doris::FragmentMgr::(doris::FragmentMgr, std::shared_ptr, std::function<void (doris::PlanFragmentExecutor)>))(std::shared_ptr, std::function<void (doris::PlanFragmentExecutor)>)> >::_M_invoke(std::_Any_data const&) at /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:291 15# doris::ThreadPool::dispatch_thread() at /data/doris-1.x/be/src/util/threadpool.cpp:578 16# doris::Thread::supervise_thread(void*) at /data/doris-1.x/be/src/util/thread.cpp:407 17# start_thread in /lib64/libpthread.so.0 18# __clone in /lib64/libc.so.6

What You Expected?

no core

How to Reproduce?

No response

Anything Else?

No response

Are you willing to submit PR?

Code of Conduct

lide-reed commented 2 years ago

Just reproduce in the version which compile with use_jemalloc