Skip to content

[Bug] be core dump when using right join with other join predicates. #13509

@luozenglin

Description

@luozenglin

Search before asking

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

Version

master

What's Wrong?

be core dump when using right join with other join predicates.

*** Query id: 59d97a32c9c94ba3-a9e0e4de1785c817 ***
*** Aborted at 1666266920 (unix time) try "date -d @1666266920" if you are using GNU date ***
*** Current BE git commitID: 410e36ef5 ***
*** SIGABRT unkown detail explain (@0x2070000e73e) received by PID 59198 (TID 0x7f9a6e1ff700) from PID 59198; stack trace: ***
 0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t*, void*) at /home/disk3/lzl/icode/baidu/bdg/doris/core/be/src/common/signal_handler.h:420
 1# 0x00007F9B4C694920 in /lib64/libc.so.6
 2# __GI_raise in /lib64/libc.so.6
 3# abort in /lib64/libc.so.6
 4# 0x0000563C8D07C109 in /home/disk3/lzl/test/doris/be/lib/doris_be
 5# 0x0000563C8D07171D in /home/disk3/lzl/test/doris/be/lib/doris_be
 6# google::LogMessage::SendToLog() in /home/disk3/lzl/test/doris/be/lib/doris_be
 7# google::LogMessage::Flush() in /home/disk3/lzl/test/doris/be/lib/doris_be
 8# google::LogMessageFatal::~LogMessageFatal() in /home/disk3/lzl/test/doris/be/lib/doris_be
 9# doris::Status doris::vectorized::ProcessHashTableProbe<std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)3>, true>::do_process_with_other_join_conjunts<doris::vectorized::FixedKeyHash
TableContext<unsigned long, true> >(doris::vectorized::FixedKeyHashTableContext<unsigned long, true>&, doris::vectorized::PODArray<unsigned char, 4096ul, Allocator<false, false>, 15ul, 16ul> const*, doris
::vectorized::MutableBlock&, doris::vectorized::Block*, unsigned long) at /home/disk3/lzl/icode/baidu/bdg/doris/core/be/src/vec/exec/join/vhash_join_node.cpp:671
10# auto doris::vectorized::HashJoinNode::get_next(doris::RuntimeState*, doris::vectorized::Block*, bool*)::{lambda(auto:1&&, auto:2&&, auto:3)#2}::operator()<doris::vectorized::FixedKeyHashTableContext<u
nsigned long, true>&, doris::vectorized::ProcessHashTableProbe<std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)3>, true>&, std::integral_constant<bool, true> >(doris::vectorized::FixedK
eyHashTableContext<unsigned long, true>&, doris::vectorized::ProcessHashTableProbe<std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)3>, true>&, std::integral_constant<bool, true>) const
at /home/disk3/lzl/icode/baidu/bdg/doris/core/be/src/vec/exec/join/vhash_join_node.cpp:1038
11# void std::__invoke_impl<void, doris::vectorized::HashJoinNode::get_next(doris::RuntimeState*, doris::vectorized::Block*, bool*)::{lambda(auto:1&&, auto:2&&, auto:3)#2}, doris::vectorized::FixedKeyHash
TableContext<unsigned long, true>&, doris::vectorized::ProcessHashTableProbe<std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)3>, true>&, std::integral_constant<bool, true> >(std::__invo
ke_other, doris::vectorized::HashJoinNode::get_next(doris::RuntimeState*, doris::vectorized::Block*, bool*)::{lambda(auto:1&&, auto:2&&, auto:3)#2}&&, doris::vectorized::FixedKeyHashTableContext<unsigned
long, true>&, doris::vectorized::ProcessHashTableProbe<std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)3>, true>&, std::integral_constant<bool, true>&&) at /home/disk3/lzl/icode/baidu/b
dg/doris/palo-toolchain/ldb_toolchain/include/c++/11/bits/invoke.h:61
12# std::__invoke_result<doris::vectorized::HashJoinNode::get_next(doris::RuntimeState*, doris::vectorized::Block*, bool*)::{lambda(auto:1&&, auto:2&&, auto:3)#2}, doris::vectorized::FixedKeyHashTableCont
ext<unsigned long, true>&, doris::vectorized::ProcessHashTableProbe<std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)3>, true>&, std::integral_constant<bool, true> >::type std::__invoke<
doris::vectorized::HashJoinNode::get_next(doris::RuntimeState*, doris::vectorized::Block*, bool*)::{lambda(auto:1&&, auto:2&&, auto:3)#2}, doris::vectorized::FixedKeyHashTableContext<unsigned long, true>&
, doris::vectorized::ProcessHashTableProbe<std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)3>, true>&, std::integral_constant<bool, true> >(doris::vectorized::HashJoinNode::get_next(dor
is::RuntimeState*, doris::vectorized::Block*, bool*)::{lambda(auto:1&&, auto:2&&, auto:3)#2}&&, doris::vectorized::FixedKeyHashTableContext<unsigned long, true>&, doris::vectorized::ProcessHashTableProbe<
std::integral_constant<doris::TJoinOp::type, (doris::TJoinOp::type)3>, true>&, std::integral_constant<bool, true>&&) at /home/disk3/lzl/icode/baidu/bdg/doris/palo-toolchain/ldb_toolchain/include/c++/11/bi
ts/invoke.h:97

What You Expected?

as expected

How to Reproduce?

CREATE TABLE `test` (
  `k1` tinyint(4) NULL,
  `k2` smallint(6) NULL,
  `k3` int(11) NULL,
  `k4` bigint(20) NULL,
  `k5` decimal(9, 3) NULL,
  `k6` char(5) NULL,
  `k10` date NULL,
  `k11` datetime NULL,
  `k7` varchar(20) NULL,
  `k8` double MAX NULL,
  `k9` float SUM NULL
) ENGINE=OLAP
AGGREGATE KEY(`k1`, `k2`, `k3`, `k4`, `k5`, `k6`, `k10`, `k11`, `k7`)
COMMENT 'OLAP'
DISTRIBUTED BY HASH(`k1`) BUCKETS 5
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
"in_memory" = "false",
"storage_format" = "V2",
"disable_auto_compaction" = "false"
);

CREATE TABLE `baseall` (
  `k1` tinyint(4) NULL,
  `k2` smallint(6) NULL,
  `k3` int(11) NULL,
  `k4` bigint(20) NULL,
  `k5` decimal(9, 3) NULL,
  `k6` char(5) NULL,
  `k10` date NULL,
  `k11` datetime NULL,
  `k7` varchar(20) NULL,
  `k8` double MAX NULL,
  `k9` float SUM NULL
) ENGINE=OLAP
AGGREGATE KEY(`k1`, `k2`, `k3`, `k4`, `k5`, `k6`, `k10`, `k11`, `k7`)
COMMENT 'OLAP'
DISTRIBUTED BY HASH(`k1`) BUCKETS 5
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
"in_memory" = "false",
"storage_format" = "V2",
"disable_auto_compaction" = "false"
);

insert into test(k1) values(1);
insert into baseall(k1) values(2);

select a.k1, b.k1, c.k1 from test a left join test b on a.k1 = b.k1 right join baseall c on b.k1 = c.k1 and 2=4;

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