jacktengg opened a new issue, #13478: URL: https://github.com/apache/doris/issues/13478
### Search before asking - [X] I had searched in the [issues](https://github.com/apache/incubator-doris/issues?q=is%3Aissue) and found no similar issues. ### Version master f0dbbe5b4655 ### What's Wrong? ubsan build, be coredump when doing inner hash join: ``` doris::vectorized::ProcessHashTableProbe<doris::vectorized::PrimaryTypeHashTableContext<unsigned int>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)0>, false>::ProcessHashTableProbe (this=0x7f98b93f5330, join_node=0x7f9922379000, batch_size=992, probe_rows=348) at /home/zcp/repo_center/doris_master/be/src/vec/exec/join/vhash_join_node.cpp:204 #1 0x0000555fe6383e48 in operator()<doris::vectorized::PrimaryTypeHashTableContext<unsigned int>&, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)0>&, std::integral_constant<bool, false>, std::integral_constant<bool, false> > (_closure=0x7f98b93f5700, arg=..., join_op_variants=..., have_other_join_conjunct=..., probe_ignore_null=...) at /home/zcp/repo_center/doris_master/be/src/vec/exec/join/vhash_join_node.cpp:1034 #2 0x0000555fe64dafa3 in std::invoke_impl<void, doris::vectorized::HashJoinNode::get_next(doris::RuntimeState*, doris::vectorized::Block*, bool*)::<lambda(auto:36&&, auto:37&&, auto:38, au to:39)>, doris::vectorized::PrimaryTypeHashTableContext<unsigned int>&, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)0>&, std::integral_constant<bool, false>, std::integral_constant<bool, false> >(std::invoke_other, struct {...} &&) (f=...) at /var/local/ldb_toolchain/include/c+/11/bits/invoke.h:61 #3 0x0000555fe64a72ad in std::invoke<doris::vectorized::HashJoinNode::get_next(doris::RuntimeState*, doris::vectorized::Block*, bool*)::<lambda(auto:36&&, auto:37&&, auto:38, auto:39)>, doris::vectorized::PrimaryTypeHashTableContext<unsigned int>&, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)0>&, std::integral_constant<bool, false>, std::integral_constant<bool, false> >(struct {...} &&) (fn=...) at /var/local/ldb_toolchain/include/c/11/bits/invoke.h:96 #4 0x0000555fe6384385 in std::detail::variant::gen_vtable_impl<std::detail::variant::_Multi_array<std::detail::variant::deduce_visit_result<void> (doris::vectorized::HashJoinNode::get_next(doris: :RuntimeState*, doris::vectorized::Block*, bool*)::<lambda(auto:36&&, auto:37&&, auto:38, auto:39)>&&, std::variant<std::monostate, doris::vectorized::SerializedHashTableContext, doris::vectorized::PrimaryTypeHashTableContext<unsigned char>, doris::vectorized::PrimaryTypeHashTableContext<short unsigned int>, doris::vectorized::PrimaryTypeHashTableContext<unsigned int>, doris::vectorized::PrimaryTypeHashTableContext<long unsigned int>, doris::vectorized::PrimaryTypeHashTableContext<doris::vectorized::UInt128>, doris::vectorized::PrimaryTypeHashTableContext<doris::vectorized::UInt256>, doris::vectorized::FixedKeyHashTableContext<long unsigned int, true>, doris::vectorized::FixedKeyHashTableContext<long unsigned int, false>, doris::vectorized::FixedKeyHashTableContext<doris::vectorized::UInt128, true>, doris::vectorized::FixedKeyHashTableContext<doris::vectorized::UInt128, false>, doris::vectorized::FixedKeyHashTableContext<doris::vectorized::UInt256, true>, doris::vectorized::FixedKey HashTableContext<doris::vectorized::UInt256, false> >&, std::variant<std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)0>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)2>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)8>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)1>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)4>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)3>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)5>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)7>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)9>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)10> >&, std::variant<std::integral_constant<bool, false>, std::integral_constant<bool, true> >&&, std::variant<std::integral_constant<bool, false>, std::integral_constant<bool, true> >&&)>, std::integer_sequence<long unsig ned int, 4, 0, 0, 0> >::visit_invoke(struct {...} &&, std::variant<std::monostate, doris::vectorized::SerializedHashTableContext, doris::vectorized::PrimaryTypeHashTableContext<unsigned char>, doris::vectorized::PrimaryTypeHashTableContext<unsigned short>, doris::vectorized::PrimaryTypeHashTableContext<unsigned int>, doris::vectorized::PrimaryTypeHashTableContext<unsigned long>, doris::vectorized::PrimaryTypeHashTableContext<doris::vectorized::UInt128>, doris::vectorized::PrimaryTypeHashTableContext<doris::vectorized::UInt256>, 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::var iant<std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)0>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)2>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)8>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)1>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)4>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)3>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)5>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)7>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)9>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)10> > &, std::variant<std::integral_constant<bool, false>, std::integral_constant<bool, true> > &&, std::variant<std::integral_constant<bool, false>, std::integral_constant<bool, true> > && #5 0x0000555fe644b3df in std::do_visit<std::detail::variant::deduce_visit_result<void>, doris::v ectorized::HashJoinNode::get_next(doris::RuntimeState*, doris::vectorized::Block*, bool*)::<lambda(auto:36&&, auto:37&&, auto:38, auto:39)>, std::variant<std::monostate, doris::vectorized::SerializedHashTableContext, doris::vectorized::PrimaryTypeHashTableContext<unsigned char>, doris::vectorized::PrimaryTypeHashTableContext<short unsigned int>, doris::vectorized::PrimaryTypeHashTableContext<unsigned int>, doris::vectorized::PrimaryTypeHashTableContext<long unsigned int>, doris::vectorized::PrimaryTypeHashTableContext<doris::vectorized::UInt128>, doris::vectorized::PrimaryTypeHashTableContext<doris::vectorized::UInt256>, doris::vectorized::FixedKeyHashTableContext<long unsigned int, true>, doris::vectorized::FixedKeyHashTableContext<long unsigned int, false>, doris::vectorized::FixedKeyHashTableContext<doris::vectorized::UInt128, true>, doris::vectorized::FixedKeyHashTableContext<doris::vectorized::UInt128, false>, doris::vectorized::FixedKeyHashTableContext<doris::vectorized::UInt2 56, true>, doris::vectorized::FixedKeyHashTableContext<doris::vectorized::UInt256, false> >&, std::variant<std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)0>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)2>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)8>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)1>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)4>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)3>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)5>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)7>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)9>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)10> >&, std::variant<std::integral_constant<bool, false>, std::integral_constant<bool, true> >, std::variant<std::integral_constant<bool, false>, std::integral_constant<bool, true> > > (struct {...} &&) (visitor=...) at /var/local/ldb_toolchain/include/c/11/variant:1714 #6 0x0000555fe644b5eb in std::visit<doris::vectorized::HashJoinNode::get_next(doris::RuntimeState*, doris::vectorized::Block*, bool*)::<lambda(auto:36&&, auto:37&&, auto:38, auto:39)>, std::variant<std::monostate, doris::vectorized::SerializedHashTableContext, doris::vectorized::PrimaryTypeHashTableContext<unsigned char>, doris::vectorized::PrimaryTypeHashTableContext<short unsigned int>, doris::vectorized::PrimaryTypeHashTableContext<unsigned int>, doris::vectorized::PrimaryTypeHashTableContext<long unsigned int>, doris::vectorized::PrimaryTypeHashTableContext<doris::vectorized::UInt128>, doris::vectorized::PrimaryTypeHashTableContext<doris::vectorized::UInt256>, doris::vectorized::FixedKeyHashTableContext<long unsigned int, true>, doris::vectorized::FixedKeyHashTableContext<long unsigned int, 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::variant<std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)0>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)2>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)8>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)1>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)4>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)3>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)5>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)7>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)9>, std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)10> >&, std::variant<std::integral_constant<bool, fals e>, std::integral_constant<bool, true> >, std::variant<std::integral_constant<bool, false>, std::integral_constant<bool, true> > >(struct {...} &&) (_visitor=...) at /var/local/ldb_toolchain/include/c+/11/variant:1769 #7 0x0000555fe6481020 in doris::vectorized::HashJoinNode::get_next (this=0x7f9922379000, state=0x7f9922269000, output_block=0x7f9922269ce0, eos=0x7f9922269d68) at /home/zcp/repo_center/doris_master/be/src/vec/exec/join/vhash_join_node.cpp:1016 #8 0x0000555fdf73d7a3 in doris::ExecNode::get_next_after_projects (this=0x7f9922379000, state=0x7f9922269000, block=0x7f9922269ce0, eos=0x7f9922269d68) at /home/zcp/repo_center/doris_master/be/src/exec/exec_node.cpp:863 #9 0x0000555fe647f192 in doris::vectorized::HashJoinNode::get_next (this=0x7f9922269800, state=0x7f9922269000, output_block=0x7f96eecc67e0, eos=0x7f98b93f5c8f) at /home/zcp/repo_center/doris_master/be/src/vec/exec/join/vhash_join_node.cpp:972 #10 0x0000555fdf73d7a3 in doris::ExecNode::get_next_after_projects (this =0x7f9922269800, state=0x7f9922269000, block=0x7f96eecc67e0, eos=0x7f98b93f5c8f) at /home/zcp/repo_center/doris_master/be/src/exec/exec_node.cpp:863 #11 0x0000555fe5e8e9a6 in doris::vectorized::VSortNode::open (this=0x7f968a0e4300, state=0x7f9922269000) at /home/zcp/repo_center/doris_master/be/src/vec/exec/vsort_node.cpp:91 #12 0x0000555fe080e9a4 in doris::PlanFragmentExecutor::open_vectorized_internal (this=0x7f944dcb5070) ``` ### What You Expected? no coredump ### How to Reproduce? tpch q15: ``` SELECT s_suppkey, s_name, s_address, s_phone, total_revenue FROM supplier, revenue1 WHERE s_suppkey = supplier_no AND total_revenue = ( SELECT max(total_revenue) FROM revenue1 ) ORDER BY s_suppkey ``` ### Anything Else? _No response_ ### Are you willing to submit PR? - [X] Yes I am willing to submit a PR! ### Code of Conduct - [X] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct) -- 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.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