You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hudi.apache.org by "Danny Chen (Jira)" <ji...@apache.org> on 2023/02/09 09:53:00 UTC

[jira] [Closed] (HUDI-5725) Creating Hudi table with misspelled table type in Flink leads to Flink cluster crash

     [ 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)