Doris 3.0.1版本,修改基于S3外部表的view会导致FE 恢复editlog时Crash

Viewed 68

复现操作:
1、创建基于S3的View
Create View dmp.xxxxx as SELECT goods_sn,site_l1_cd FROM s3 (
"URI" = "s3://xxxxxxxxxx/prod/goods_selection/tag_id=600105150/dt=20240911081645/*.orc",
"s3.endpoint" = "https://s3.us-west-2.amazonaws.com",
"s3.region" = "us-west-2",
"s3.access_key"= "xxxxxx",
"s3.secret_key" = "xxxxxxxxxxxx",
"format" = "orc"
)

2、修改View
Alter view dmp.xxxxx as SELECT goods_sn,site_l1_cd FROM s3 (
"URI" = "s3://xxxxxxxxxx/prod/goods_selection/tag_id=600105150/dt=20240911081645/*.orc",
"s3.endpoint" = "https://s3.us-west-2.amazonaws.com",
"s3.region" = "us-west-2",
"s3.access_key"= "xxxxxx",
"s3.secret_key" = "xxxxxxxxxxxx",
"format" = "orc"
)

3、重启FE

4、FE报错,反复Crash
2024-09-12 23:58:04,878 ERROR (replayer|110) [EditLog.loadJournal():1245] replay Operation Type 119, log id: 56222
org.apache.doris.common.DdlException: errCode = 2, detailMessage = failed to init view stmt, reason=errCode = 2, detailMessage = Failed to parse view-definition statement of view: pool_compute_600105150, stmt is SELECT _table_valued_function_s3.goods_sn,_table_valued_function_s3.site_l1_cd,_table_valued_function_s3.site_tp FROM s3 (
"URI" = "s3://xxxxxxxxxx/prod/goods_selection/tag_id=600105150/dt=20240911081645/*.orc",
"s3.endpoint" = "https://s3.us-west-2.amazonaws.com",
"s3.region" = "us-west-2",
"s3.access_key"= "xxxxxx",
"s3.secret_key" = "xxxxxxxxxxxx",
"format" = "orc"
), reason is Cannot invoke "org.apache.doris.qe.ConnectContext.queryId()" because "ctx" is null
at org.apache.doris.alter.Alter.replayModifyViewDef(Alter.java:675) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.persist.EditLog.loadJournal(EditLog.java:313) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.catalog.Env.replayJournal(Env.java:2922) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.catalog.Env$4.runOneCycle(Env.java:2684) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.common.util.Daemon.run(Daemon.java:116) ~[doris-fe.jar:1.2-SNAPSHOT]

2 Answers

问题稳定复现,目前已经在fix 中,后续同步fix PR ,可以先规避这一行为