[
https://issues.apache.org/jira/browse/HUDI-5725?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Danny Chen closed HUDI-5725.
----------------------------
Resolution: Fixed
Fixed via master branch: 2b0615c52ba9e8310b2e62dc0fdc1efdeeebe1a8
> Creating Hudi table with misspelled table type in Flink leads to Flink
> cluster crash
> ------------------------------------------------------------------------------------
>
> Key: HUDI-5725
> URL: https://issues.apache.org/jira/browse/HUDI-5725
> Project: Apache Hudi
> Issue Type: Bug
> Components: flink
> Affects Versions: 0.11.1, 0.12.2
> Environment: Flink 1.13.2
> Hadoop 3.1.1
> Hudi 0.14.0-SNAPSHOT
> Reporter: Yao Zhang
> Assignee: Yao Zhang
> Priority: Major
> Labels: pull-request-available
> Fix For: 0.14.0
>
>
> Create table with the following SQL:
> {code:sql}
> CREATE TABLE t1(
> uuid VARCHAR(20),
> name VARCHAR(10),
> age INT,
> ts TIMESTAMP(3),
> `partition` VARCHAR(20)
> )
> PARTITIONED BY (`partition`)
> WITH (
> 'connector' = 'hudi',
> 'path' = 'hdfs:///hudi/t1',
> 'table.type' = 'MERGE_ON_REA
> D'
> );
> {code}
> The value table.type contains an unexpected line break in 'MERGE_ON_READ'.
> After the table creation, insert an arbitrary line of data. Flink cluster
> will immediately crash with the exception below:
> {code:java}
> Caused by: java.lang.IllegalArgumentException: No enum constant
> org.apache.hudi.common.model.HoodieTableType.MERGE_ON_REA
> D
> at java.lang.Enum.valueOf(Enum.java:238) ~[?:1.8.0_121]
> at
> org.apache.hudi.common.model.HoodieTableType.valueOf(HoodieTableType.java:30)
> ~[hudi-flink1.13-bundle-0.14.0-SNAPSHOT.jar:0.14.0-SNAPSHOT]
> at
> org.apache.hudi.sink.StreamWriteOperatorCoordinator$TableState.<init>(StreamWriteOperatorCoordinator.java:630)
> ~[hudi-flink1.13-bundle-0.14.0-SNAPSHOT.jar:0.14.0-SNAPSHOT]
> at
> org.apache.hudi.sink.StreamWriteOperatorCoordinator$TableState.create(StreamWriteOperatorCoordinator.java:640)
> ~[hudi-flink1.13-bundle-0.14.0-SNAPSHOT.jar:0.14.0-SNAPSHOT]
> at
> org.apache.hudi.sink.StreamWriteOperatorCoordinator.start(StreamWriteOperatorCoordinator.java:187)
> ~[hudi-flink1.13-bundle-0.14.0-SNAPSHOT.jar:0.14.0-SNAPSHOT]
> at
> org.apache.flink.runtime.operators.coordination.OperatorCoordinatorHolder.start(OperatorCoordinatorHolder.java:194)
> ~[flink-dist_2.11-1.13.2.jar:1.13.2]
> at
> org.apache.flink.runtime.scheduler.DefaultOperatorCoordinatorHandler.startAllOperatorCoordinators(DefaultOperatorCoordinatorHandler.java:85)
> ~[flink-dist_2.11-1.13.2.jar:1.13.2]
> at
> org.apache.flink.runtime.scheduler.SchedulerBase.startScheduling(SchedulerBase.java:592)
> ~[flink-dist_2.11-1.13.2.jar:1.13.2]
> at
> org.apache.flink.runtime.jobmaster.JobMaster.startScheduling(JobMaster.java:955)
> ~[flink-dist_2.11-1.13.2.jar:1.13.2]
> at
> org.apache.flink.runtime.jobmaster.JobMaster.startJobExecution(JobMaster.java:873)
> ~[flink-dist_2.11-1.13.2.jar:1.13.2]
> at
> org.apache.flink.runtime.jobmaster.JobMaster.onStart(JobMaster.java:383)
> ~[flink-dist_2.11-1.13.2.jar:1.13.2]
> at
> org.apache.flink.runtime.rpc.RpcEndpoint.internalCallOnStart(RpcEndpoint.java:181)
> ~[flink-dist_2.11-1.13.2.jar:1.13.2]
> at
> org.apache.flink.runtime.rpc.akka.AkkaRpcActor$StoppedState.start(AkkaRpcActor.java:605)
> ~[flink-dist_2.11-1.13.2.jar:1.13.2]
> at
> org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleControlMessage(AkkaRpcActor.java:180)
> ~[flink-dist_2.11-1.13.2.jar:1.13.2]
> at akka.japi.pf.UnitCaseStatement.apply(CaseStatements.scala:26)
> ~[flink-dist_2.11-1.13.2.jar:1.13.2]
> at akka.japi.pf.UnitCaseStatement.apply(CaseStatements.scala:21)
> ~[flink-dist_2.11-1.13.2.jar:1.13.2]
> at scala.PartialFunction$class.applyOrElse(PartialFunction.scala:123)
> ~[flink-dist_2.11-1.13.2.jar:1.13.2]
> at
> akka.japi.pf.UnitCaseStatement.applyOrElse(CaseStatements.scala:21)
> ~[flink-dist_2.11-1.13.2.jar:1.13.2]
> at
> scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:170)
> ~[flink-dist_2.11-1.13.2.jar:1.13.2]
> ... 12 more
> {code}
> The expected behavior is Flink cluster is still running and gives some
> infomation like 'Illegal table type' and gives the user a chance to correct
> the SQL statement.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)