risingwave
risingwave copied to clipboard
panic when `infer_stream_agg_state` in fuzz test: `stream_key` of the input node is `None`
Buildkite URL
https://buildkite.com/risingwavelabs/main-cron/builds/5128#01969c06-df29-4b00-a51a-2db63f9f01a8/314-315
Description and Insights
Please check the frontend node logs.
thread 'rw-main' panicked at src/frontend/src/optimizer/plan_node/generic/agg.rs:390:46:
called `Option::unwrap()` on a `None` value
stack backtrace:
0: rust_begin_unwind
at /rustc/f9e0239a7bc813b4aceffc7f069f4797cde3175c/library/std/src/panicking.rs:695:5
1: core::panicking::panic_fmt
at /rustc/f9e0239a7bc813b4aceffc7f069f4797cde3175c/library/core/src/panicking.rs:75:14
2: core::panicking::panic
at /rustc/f9e0239a7bc813b4aceffc7f069f4797cde3175c/library/core/src/panicking.rs:145:5
3: core::option::unwrap_failed
at /rustc/f9e0239a7bc813b4aceffc7f069f4797cde3175c/library/core/src/option.rs:2015:5
4: unwrap<&[usize]>
at /rustc/f9e0239a7bc813b4aceffc7f069f4797cde3175c/library/core/src/option.rs:978:21
5: infer_stream_agg_state<risingwave_frontend::optimizer::plan_node::PlanRef, &&risingwave_frontend::optimizer::plan_node::plan_base::PlanBase<risingwave_frontend::optimizer::plan_node::Stream>>
at ./src/frontend/src/optimizer/plan_node/generic/agg.rs:390:46
6: infer_tables<risingwave_frontend::optimizer::plan_node::PlanRef, &risingwave_frontend::optimizer::plan_node::plan_base::PlanBase<risingwave_frontend::optimizer::plan_node::Stream>>
at ./src/frontend/src/optimizer/plan_node/generic/agg.rs:323:13
7: to_stream_prost_body
at ./src/frontend/src/optimizer/plan_node/stream_hash_agg.rs:184:13
Likely the query:
CREATE MATERIALIZED VIEW stream_query AS WITH with_0 AS (SELECT tumble_1.c8 AS col_0, TIME '16:20:00' AS col_1, (coalesce(NULL, NULL, NULL, ((BIGINT '402')), NULL, NULL, NULL, NULL, NULL, NULL)) AS col_2 FROM (tumble(alltypes1, alltypes1.c11, INTERVAL '11') AS tumble_1 RIGHT JOIN (SELECT (BIGINT '147') AS col_0, false AS col_1, CAST('1zGSe4O0u0' AS CHARACTER VARYING) AS col_2 FROM nation AS t_2 LEFT JOIN m19 AS t_3 ON t_2.n_name = t_3.col_0 AND (coalesce(NULL, false, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)) WHERE false) AS sq_5 ON tumble_1.c9 = sq_5.col_2 AND true) JOIN hop(auction, auction.date_time, INTERVAL '24', INTERVAL '168') AS hop_6 ON tumble_1.c4 = hop_6.reserve AND sq_5.col_1 WHERE sq_5.col_1 GROUP BY sq_5.col_1, tumble_1.c7, hop_6.id, tumble_1.c15, tumble_1.c8, hop_6.seller, sq_5.col_2) SELECT (BIGINT '240') AS col_0, max(DISTINCT CAST('0PY2ZRo3vc' AS CHARACTER VARYING)) FILTER (WHERE true) AS col_1, (INTERVAL '99') AS col_2 FROM with_0
Cannot reproduce anymore.
Queries I tried:
CREATE TABLE supplier (s_suppkey INT, s_name CHARACTER VARYING, s_address CHARACTER VARYING, s_nationkey INT, s_phone CHARACTER VARYING, s_acctbal NUMERIC, s_comment CHARACTER VARYING, PRIMARY KEY (s_suppkey));
CREATE TABLE part (p_partkey INT, p_name CHARACTER VARYING, p_mfgr CHARACTER VARYING, p_brand CHARACTER VARYING, p_type CHARACTER VARYING, p_size INT, p_container CHARACTER VARYING, p_retailprice NUMERIC, p_comment CHARACTER VARYING, PRIMARY KEY (p_partkey));
CREATE TABLE partsupp (ps_partkey INT, ps_suppkey INT, ps_availqty INT, ps_supplycost NUMERIC, ps_comment CHARACTER VARYING, PRIMARY KEY (ps_partkey, ps_suppkey));
CREATE TABLE customer (c_custkey INT, c_name CHARACTER VARYING, c_address CHARACTER VARYING, c_nationkey INT, c_phone CHARACTER VARYING, c_acctbal NUMERIC, c_mktsegment CHARACTER VARYING, c_comment CHARACTER VARYING, PRIMARY KEY (c_custkey));
CREATE TABLE orders (o_orderkey BIGINT, o_custkey INT, o_orderstatus CHARACTER VARYING, o_totalprice NUMERIC, o_orderdate DATE, o_orderpriority CHARACTER VARYING, o_clerk CHARACTER VARYING, o_shippriority INT, o_comment CHARACTER VARYING, PRIMARY KEY (o_orderkey));
CREATE TABLE lineitem (l_orderkey BIGINT, l_partkey INT, l_suppkey INT, l_linenumber INT, l_quantity NUMERIC, l_extendedprice NUMERIC, l_discount NUMERIC, l_tax NUMERIC, l_returnflag CHARACTER VARYING, l_linestatus CHARACTER VARYING, l_shipdate DATE, l_commitdate DATE, l_receiptdate DATE, l_shipinstruct CHARACTER VARYING, l_shipmode CHARACTER VARYING, l_comment CHARACTER VARYING, PRIMARY KEY (l_orderkey, l_linenumber));
CREATE TABLE nation (n_nationkey INT, n_name CHARACTER VARYING, n_regionkey INT, n_comment CHARACTER VARYING, PRIMARY KEY (n_nationkey));
CREATE TABLE region (r_regionkey INT, r_name CHARACTER VARYING, r_comment CHARACTER VARYING, PRIMARY KEY (r_regionkey));
CREATE TABLE person (id BIGINT, name CHARACTER VARYING, email_address CHARACTER VARYING, credit_card CHARACTER VARYING, city CHARACTER VARYING, state CHARACTER VARYING, date_time TIMESTAMP, extra CHARACTER VARYING, PRIMARY KEY (id));
CREATE TABLE auction (id BIGINT, item_name CHARACTER VARYING, description CHARACTER VARYING, initial_bid BIGINT, reserve BIGINT, date_time TIMESTAMP, expires TIMESTAMP, seller BIGINT, category BIGINT, extra CHARACTER VARYING, PRIMARY KEY (id));
CREATE TABLE bid (auction BIGINT, bidder BIGINT, price BIGINT, channel CHARACTER VARYING, url CHARACTER VARYING, date_time TIMESTAMP, extra CHARACTER VARYING);
CREATE TABLE alltypes1 (c1 BOOLEAN, c2 SMALLINT, c3 INT, c4 BIGINT, c5 REAL, c6 DOUBLE, c7 NUMERIC, c8 DATE, c9 CHARACTER VARYING, c10 TIME, c11 TIMESTAMP, c13 INTERVAL, c14 STRUCT<a INT>, c15 INT[], c16 CHARACTER VARYING[]);
CREATE TABLE alltypes2 (c1 BOOLEAN, c2 SMALLINT, c3 INT, c4 BIGINT, c5 REAL, c6 DOUBLE, c7 NUMERIC, c8 DATE, c9 CHARACTER VARYING, c10 TIME, c11 TIMESTAMP, c13 INTERVAL, c14 STRUCT<a INT>, c15 INT[], c16 CHARACTER VARYING[]);
CREATE TABLE m19 (col_0 CHARACTER VARYING, col_1 BOOLEAN, col_2 CHARACTER VARYING);
-- EXPLAIN (VERBOSE)
CREATE MATERIALIZED VIEW stream_query AS
WITH with_0 AS (
SELECT
tumble_1.c8 AS col_0,
TIME '16:20:00' AS col_1,
(coalesce(NULL, NULL, NULL, ((BIGINT '402')), NULL, NULL, NULL, NULL, NULL, NULL)) AS col_2
FROM (
tumble(alltypes1, alltypes1.c11, INTERVAL '11') AS tumble_1
RIGHT JOIN (
SELECT
(BIGINT '147') AS col_0,
false AS col_1,
CAST('1zGSe4O0u0' AS CHARACTER VARYING) AS col_2
FROM nation AS t_2
LEFT JOIN m19 AS t_3
ON t_2.n_name = t_3.col_0
AND (coalesce(NULL, false, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL))
WHERE false
) AS sq_5
ON tumble_1.c9 = sq_5.col_2
AND true
)
JOIN hop(auction, auction.date_time, INTERVAL '24', INTERVAL '168') AS hop_6
ON tumble_1.c4 = hop_6.reserve
AND sq_5.col_1
WHERE sq_5.col_1
GROUP BY
sq_5.col_1,
tumble_1.c7,
hop_6.id,
tumble_1.c15,
tumble_1.c8,
hop_6.seller,
sq_5.col_2
)
SELECT
(BIGINT '240') AS col_0,
max(DISTINCT CAST('0PY2ZRo3vc' AS CHARACTER VARYING)) FILTER (WHERE true) AS col_1,
(INTERVAL '99') AS col_2
FROM with_0;