查询导致be宕机

【详述】
有2个问题,在使用cast(string as array)时会导致be宕机
问题1:关于查询数量的问题
sql 1 :如下:
select
cast(’[“a”,“b”,“c”]’ as array) as array_test
from
rx_bd_test.ods_event_user
;
查询结果:

rx_bd_test.ods_event_user表的数据量是10000。
image

问题 2 :导致be宕机的查询
select
*
, cast(’[“a”,“b”,“c”]’ as array) as array_test
from
rx_bd_test.ods_event_user
;

执行以上sql,将会导致be宕机,

【背景】做过哪些操作?
【业务影响】
【StarRocks版本】2.5.2,2.4.3都有该问题
【集群规模】3fe + 5be

您好 您查询的表是什么模型 ? 麻烦把宕机的be.out日志发一下 我们看下堆栈信息

第一个sql查询为什么只返回3条呢?

be.out的文件输出结果:

query_id:d98cb4b9-55e1-4d7d-9c25-4656f42bc10c, fragment_instance:d98cb4b9-55e1-4d7d-9c25-4656f42bc10f
*** Aborted at 1678179220 (unix time) try “date -d @1678179220” if you are using GNU date ***
PC: @ 0x47a88f4 starrocks::MysqlRowBuffer::push_string()
*** SIGSEGV (@0x7f8a99c3b000) received by PID 133290 (TID 0x7f8b45c2d700) from PID 18446744071994322944; stack trace: ***
@ 0x5722822 google::(anonymous namespace)::FailureSignalHandler()
@ 0x7f8be0362630 (unknown)
@ 0x47a88f4 starrocks::MysqlRowBuffer::push_string()
@ 0x4cbbb76 starrocks::vectorized::ArrayColumn::put_mysql_row_buffer()
@ 0x501cebc starrocks::MysqlResultWriter::process_chunk()
@ 0x4daf904 starrocks::pipeline::ResultSinkOperator::push_chunk()
@ 0x2c40466 starrocks::pipeline::PipelineDriver::process()
@ 0x4dc1bd7 starrocks::pipeline::GlobalDriverExecutor::_worker_thread()
@ 0x47d2acd starrocks::ThreadPool::dispatch_thread()
@ 0x47cd85a starrocks::thread::supervise_thread()
@ 0x7f8be035aea5 start_thread
@ 0x7f8bdf975b0d __clone
@ 0x0 (unknown)

查询的是主键模型

麻烦查询下这个表数据我看下

这个麻烦您执行下 explain costs + sql 这个只是打出查询计划 不会导致be crash的

随机取了10条数据
ods_event_user_202303071659.csv (3.1 MB)

explain costs (5.9 KB)

这个是表结构

CREATE TABLE ods_event_user (
#user_id varchar(65533) NOT NULL COMMENT “”,
#create_time varchar(65533) NULL COMMENT “”,
#distinct_id varchar(65533) NOT NULL COMMENT “”,
#devicecode varchar(65533) NULL COMMENT “”,
#type varchar(65533) NULL COMMENT “”,
#time datetime NULL COMMENT “”,
#event varchar(65533) NULL COMMENT “”,
#uuid varchar(65533) NULL COMMENT “”,
#ip varchar(65533) NULL COMMENT “IP地址”,
#cpid bigint(20) NULL COMMENT “”,
#app_id varchar(65533) NULL COMMENT “”,
#product_id varchar(65533) NULL COMMENT “”,
#platform_id bigint(20) NULL COMMENT “”,
#channel_id varchar(65533) NULL COMMENT “”,
#sub_channel_id varchar(65533) NULL COMMENT “”,
#first_paid_time datetime NULL COMMENT “首次支付时间”,
#register_time datetime NULL COMMENT “注册时间”,
#agg_pay_money bigint(20) NULL COMMENT “支付总金额”,
#agg_pay_count bigint(20) NULL COMMENT “支付总次数”,
#lastlogintime datetime NULL COMMENT “”,
#birthday datetime NULL COMMENT “”,
#total_money double NULL COMMENT “”,
#regtime datetime NULL COMMENT “”,
#sex varchar(65533) NULL COMMENT “”,
#user_source_type varchar(65533) NULL COMMENT “”,
region varchar(65533) NULL COMMENT “”
) ENGINE=OLAP
PRIMARY KEY(#user_id)
COMMENT “OLAP”
DISTRIBUTED BY HASH(#user_id) BUCKETS 3
PROPERTIES (
“replication_num” = “3”,
“in_memory” = “false”,
“storage_format” = “DEFAULT”,
“enable_persistent_index” = “false”,
“compression” = “ZSTD”
);

好的 感谢 我尝试复现下

我试了一个明细表,也是会导致be宕机

这个导致crash的sql 麻烦给一个您直接执行的

sql:

select
*
, cast(’[“a”,“b”,“c”]’ as array) as array_test
from
rx_bd_test.ods_event_user
;

大佬,您那边有复现吗?

我这边复现了 再跟进当中 后续有进展 会在这个帖子下跟您同步下 当前根因还没定位

大佬,这个有修复的安排吗?那个版本修复呢?

您好 这个问题当前研发同学还未给出具体的修复时间 我再跟进下 有消息会在这个帖子下

ok,麻烦大佬了

在 2.5.6 也遇到了这个问题