为了更快的定位您的问题,请提供以下信息,谢谢
【详述】从3.4.7升级到3.5.8之后出现的sql报错,经过排查是在sql中同时使用max(‘failed’) as dqc_result和and 0 > 0 这两个同时存在就会报错,去掉任何一个后,执行正常
但这个sql能在3.4.7或者3.3.17运行通过,在3.5.8和4.0.2都会报错
【背景】存算分离 3.4.7 升级 3.5.8 之后出现的报错
错误 [1064] [42000]: Internal error: vector::_M_range_insert: BE:10004
【业务影响】数仓任务失败
【是否存算分离】是
【StarRocks版本】例如:3.5.8
【集群规模】5fe(3 follower+2observer)+4cn
【机器信息】CPU虚拟核/内存/网卡,例如:48C/64G/万兆
【联系方式】联系方式,社区群28-无痕
【附件】
这里是可复现的sql,
-- SR版本号:3.5.8-88ffb18(包括3.5.9/4.0.2都会重现这个问题),其中3.4.7版本是没有问题的,可以正常执行
drop temporary table if exists test.abc;
create temporary table test.abc as
select
1 as row_cnt
, 'failed' as dqc_result
, 'current_row_cnt: 7321, last_row_cnt: 7321' as row_summary
, 1 as row_rn;
select
max( b001.row_cnt ) as row_cnt
, max('failed') as dqc_result
, group_concat( concat( b001.row_rn, '. ', trim( b001.row_summary ) ) order by b001.row_rn separator char(10) ) as row_item
from test.abc as b001
where ( row_cnt < -2147483648
or row_cnt > 2147483647 )
-- 这个 0 > 0条件会引发报错: SQL 错误 [1064] [42000]: Internal error: vector::_M_range_insert: BE:10004
and 0 > 0
and b001.row_rn < 11
-- max('failed') as dqc_result和and 0 > 0 这两个同时存在就会报错,去掉任何一个后,执行正常