apache / doris

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

[Bug] The second parameter of the Radom function being a variable can cause the BE node to crash #41454

Open huligong1234 opened 1 month ago

huligong1234 commented 1 month ago

Search before asking

Version

2.1.5

What's Wrong?

CentOS7.9/openEuler-22.03, Doris2.1.5, The second parameter of the Radom function being a variable can cause the BE node to crash.

Can be reproduced 100%

image

What You Expected?

Fix it

How to Reproduce?

CREATE TABLE `t_1` (
  `code` VARCHAR(36) NULL
) ENGINE=OLAP
DUPLICATE KEY(`code`)
DISTRIBUTED BY HASH(`code`) BUCKETS 1
PROPERTIES (
"replication_allocation" = "tag.location.default: 1"
);

CREATE TABLE `t_2` (
  `code` VARCHAR(36) NULL
) ENGINE=OLAP
DUPLICATE KEY(`code`)
DISTRIBUTED BY HASH(`code`) BUCKETS 1
PROPERTIES (
"replication_allocation" = "tag.location.default: 1"
);

insert into t_1(`code`) values('100');
insert into t_1(`code`) values('200');
insert into t_1(`code`) values('300');

insert into t_2(`code`) values('1');
insert into t_2(`code`) values('101');
insert into t_2(`code`) values('951744758986133504');

SELECT random(1,randnum) AS vnum,m.* 
FROM (select * from t_2) m 
LEFT JOIN (SELECT count(1) as randnum,code from t_1 GROUP BY code) d ON m.code=d.code;

Anything Else?

No response

Are you willing to submit PR?

Code of Conduct

wyxxxcat commented 1 month ago

fix at https://github.com/apache/doris/pull/39255