为了更快的定位您的问题,请提供以下信息,谢谢
【详述】使用函数percentile_disc查询一张空表,导致BE宕机
【背景】
【业务影响】
【是否存算分离】否
【StarRocks版本】3.3.11
【集群规模】例如:3fe(1 follower+2observer)+3be(fe与be混部)
【机器信息】CPU虚拟核/内存/网卡,例如:48C/64G/万兆
【联系方式】
创建一张分区空表
CREATE TABLE lineorder
(
lo_orderkey
int(11) NOT NULL COMMENT “”,
lo_linenumber
int(11) NOT NULL COMMENT “”,
lo_custkey
int(11) NOT NULL COMMENT “”,
lo_partkey
int(11) NOT NULL COMMENT “”,
lo_suppkey
int(11) NOT NULL COMMENT “”,
lo_orderdate
int(11) NOT NULL COMMENT “”,
lo_orderpriority
varchar(16) NOT NULL COMMENT “”,
lo_shippriority
int(11) NOT NULL COMMENT “”,
lo_quantity
int(11) NOT NULL COMMENT “”,
lo_extendedprice
int(11) NOT NULL COMMENT “”,
lo_ordtotalprice
int(11) NOT NULL COMMENT “”,
lo_discount
int(11) NOT NULL COMMENT “”,
lo_revenue
int(11) NOT NULL COMMENT “”,
lo_supplycost
int(11) NOT NULL COMMENT “”,
lo_tax
int(11) NOT NULL COMMENT “”,
lo_commitdate
int(11) NOT NULL COMMENT “”,
lo_shipmode
varchar(11) NOT NULL COMMENT “”
) ENGINE=OLAP
DUPLICATE KEY(lo_orderkey
)
COMMENT “OLAP”
PARTITION BY RANGE(lo_orderdate
)
(PARTITION p1 VALUES [("-2147483648"), (“19930101”)),
PARTITION p2 VALUES [(“19930101”), (“19940101”)),
PARTITION p3 VALUES [(“19940101”), (“19950101”)),
PARTITION p4 VALUES [(“19950101”), (“19960101”)),
PARTITION p5 VALUES [(“19960101”), (“19970101”)),
PARTITION p6 VALUES [(“19970101”), (“19980101”)),
PARTITION p7 VALUES [(“19980101”), (“19990101”)))
DISTRIBUTED BY HASH(lo_orderkey
) BUCKETS 1
PROPERTIES (
“replication_num” = “1”,
“colocate_with” = “groupa1”,
“in_memory” = “false”,
“enable_persistent_index” = “false”,
“replicated_storage” = “true”,
“compression” = “LZ4”
);
查询sql:
select percentile_disc(lo_orderkey,0.5) from lineorder;
预期结果:
±----------------------------+
| percentile_disc(Score, 0.2) |
±----------------------------+
| NULL |
±----------------------------+
真实结果:
*** Aborted at 1742541270 (unix time) try “date -d @1742541270” if you are using GNU date ***
PC: @ 0x62c5d74 starrocks::PercentileDiscAggregateFunction<(starrocks::LogicalType)50>::finalize_to_column(starrocks::FunctionContext*, unsigned char const*, starrocks::Column*) const
*** SIGSEGV (@0x0) received by PID 1968623 (TID 0xfbe31f400080) from PID 0; stack trace: ***
@ 0xfbe3bf6d25c4 (/usr/lib/aarch64-linux-gnu/libc.so.6+0x825c3)
@ 0x97da648 google::(anonymous namespace)::FailureSignalHandler(int, siginfo_t*, void*)
@ 0xfbe3c09d08f8 ([vdso]+0x8f7)
@ 0x62c5d74 starrocks::PercentileDiscAggregateFunction<(starrocks::LogicalType)50>::finalize_to_column(starrocks::FunctionContext*, unsigned char const*, starrocks::Column*) const
@ 0x57529b4 starrocks::Aggregator::_finalize_to_chunk(unsigned char const*, std::vector<std::shared_ptrstarrocks::Column, std::allocator<std::shared_ptrstarrocks::Column > > const&)
@ 0x5795914 starrocks::Aggregator::convert_to_chunk_no_groupby(std::shared_ptrstarrocks::Chunk)
@ 0x63cc6f4 starrocks::pipeline::AggregateBlockingSourceOperator::pull_chunk(starrocks::RuntimeState)
@ 0x53cd1b8 starrocks::pipeline::PipelineDriver::process(starrocks::RuntimeState*, int)
@ 0x78f35dc starrocks::pipeline::GlobalDriverExecutor::_worker_thread()
@ 0x83ca254 starrocks::ThreadPool::dispatch_thread()
@ 0x83c15bc starrocks::supervise_thread(void*)
@ 0xfbe3bf6cd5b8 (/usr/lib/aarch64-linux-gnu/libc.so.6+0x7d5b7)
@ 0xfbe3bf735edc (/usr/lib/aarch64-linux-gnu/libc.so.6+0xe5edb)