wangbo opened a new issue, #13857: URL: https://github.com/apache/doris/issues/13857
### 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 lts-1.2 commit:c08568e using tpch to make a test table ``` CREATE TABLE `supplier_100` ( `s_suppkey` int(11) NOT NULL COMMENT "", `s_name` varchar(25) NOT NULL COMMENT "", `s_address` varchar(40) NOT NULL COMMENT "", `s_nationkey` int(11) NOT NULL COMMENT "", `s_phone` varchar(15) NOT NULL COMMENT "", `s_acctbal` decimal(15, 2) NOT NULL COMMENT "", `s_comment` varchar(101) NOT NULL COMMENT "" ) ENGINE=OLAP DUPLICATE KEY(`s_suppkey`) COMMENT "OLAP" DISTRIBUTED BY HASH(`s_suppkey`) BUCKETS 12 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "in_memory" = "false", "storage_format" = "V2" ) insert into supplier_100 select * from supplier limit 100 ``` the bad case ``` select t1.index_id, t2.sum_xxx from ( select s_suppkey, s_name, concat(s_suppkey,s_name,'-', s_suppkey)as index_id from supplier_100 group by s_suppkey,s_name ) t1 left join ( select t0.index_id, sum_xxx from ( select s_suppkey, s_name, concat(s_suppkey,s_name,'-', s_suppkey)as index_id, sum(s_nationkey) as sum_xxx from supplier_100 group by s_suppkey,s_name ) t0 )t2 on t1.index_id = t2.index_id order by t1.index_id, t2.sum_xxx limit 1000000 ``` stack ``` *** Query id: 0-0 *** *** Aborted at 1667283506 (unix time) try "date -d @1667283506" if you are using GNU date *** *** Current BE git commitID: c08568e *** *** SIGABRT unkown detail explain (@0x1f400031fe1) received by PID 204769 (TID 0x7f961bbe2700) from PID 204769; stack trace: *** 0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t*, void*) at /root/doris-vector/be/src/common/signal_handler.h:420 1# 0x00007F975C3F5400 in /lib64/libc.so.6 2# gsignal in /lib64/libc.so.6 3# abort in /lib64/libc.so.6 4# __gnu_cxx::__verbose_terminate_handler() [clone .cold] in /opt/meituan/palo/up/be/lib/palo_be 5# __cxxabiv1::__terminate(void (*)()) in /opt/meituan/palo/up/be/lib/palo_be 6# 0x0000560FD1F85141 in /opt/meituan/palo/up/be/lib/palo_be 7# 0x0000560FD1F85295 in /opt/meituan/palo/up/be/lib/palo_be 8# doris::vectorized::throwFromErrno(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, int) at /root/doris-vector/be/src/vec/common/exception.cpp:115 9# Allocator<false, false>::alloc(unsigned long, unsigned long) [clone .isra.0] at /root/doris-vector/be/src/vec/common/allocator.h:134 10# void doris::vectorized::PODArrayBase<1ul, 4096ul, Allocator<false, false>, 15ul, 16ul>::alloc<>(unsigned long) at /root/doris-vector/be/src/vec/common/pod_array.h:138 11# void doris::vectorized::PODArrayBase<1ul, 4096ul, Allocator<false, false>, 15ul, 16ul>::resize<>(unsigned long) at /root/doris-vector/be/src/vec/common/pod_array.h:245 12# doris::vectorized::FunctionStringConcat::execute_impl(doris_udf::FunctionContext*, doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long, unsigned long) at /root/doris-vector/be/src/vec/functions/function_string.h:479 13# doris::vectorized::PreparedFunctionImpl::execute_without_low_cardinality_columns(doris_udf::FunctionContext*, doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long, unsigned long, bool) at /root/doris-vector/be/src/vec/functions/function.cpp:251 14# doris::vectorized::PreparedFunctionImpl::default_implementation_for_nulls(doris_udf::FunctionContext*, doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long, unsigned long, bool, bool*) at /root/doris-vector/be/src/vec/functions/function.cpp:221 15# doris::vectorized::PreparedFunctionImpl::execute(doris_udf::FunctionContext*, doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long, unsigned long, bool) at /root/doris-vector/be/src/vec/functions/function.cpp:273 16# doris::vectorized::IFunctionBase::execute(doris_udf::FunctionContext*, doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long, unsigned long, bool) at /root/doris-vector/be/src/vec/functions/function.h:135 17# doris::vectorized::VectorizedFnCall::execute(doris::vectorized::VExprContext*, doris::vectorized::Block*, int*) at /root/doris-vector/be/src/vec/exprs/vectorized_fn_call.cpp:96 18# doris::vectorized::VExprContext::execute(doris::vectorized::Block*, int*) at /root/doris-vector/be/src/vec/exprs/vexpr_context.cpp:44 19# doris::vectorized::HashJoinNode::_extract_build_join_column(doris::vectorized::Block&, doris::vectorized::PODArray<unsigned char, 4096ul, Allocator<false, false>, 15ul, 16ul>&, std::vector<doris::vectorized::IColumn const*, std::allocator<doris::vectorized::IColumn const*> >&, bool&, doris::RuntimeProfile::Counter&) at /root/doris-vector/be/src/vec/exec/join/vhash_join_node.cpp:1229 20# std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<std::__detail::__variant::__deduce_visit_result<doris::Status> (*)(doris::vectorized::HashJoinNode::_process_build_block(doris::RuntimeState*, doris::vectorized::Block&, unsigned char)::{lambda(auto:1&&)#1}&&, 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::integer_sequence<unsigned long, 1ul> >::__visit_invoke(doris::vectorized::HashJoinNode::_process_build_block(doris::RuntimeState*, doris::vectorized::Block&, unsigned char)::{lambda(auto:1&&)#1}&&, 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::vec torized::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 21# doris::vectorized::HashJoinNode::_process_build_block(doris::RuntimeState*, doris::vectorized::Block&, unsigned char) at /root/doris-vector/be/src/vec/exec/join/vhash_join_node.cpp:1336 22# doris::vectorized::HashJoinNode::_hash_table_build(doris::RuntimeState*) at /root/doris-vector/be/src/vec/exec/join/vhash_join_node.cpp:1204 23# doris::vectorized::HashJoinNode::_hash_table_build_thread(doris::RuntimeState*, std::promise<doris::Status>*) at /root/doris-vector/be/src/vec/exec/join/vhash_join_node.cpp:1151 24# std::thread::_State_impl<std::thread::_Invoker<std::tuple<doris::vectorized::HashJoinNode::open(doris::RuntimeState*)::{lambda()#1}> > >::_M_run() at /var/local/ldb-toolchain/include/c++/11/bits/std_thread.h:211 25# execute_native_thread_routine in /opt/meituan/palo/up/be/lib/palo_be 26# start_thread in /lib64/libpthread.so.0 27# clone in /lib64/libc.so.6 ``` ### What's Wrong? core when using concat as join key ### What You Expected? return correct result ### 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 - [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