[ 
https://issues.apache.org/jira/browse/HUDI-3946?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Danny Chen resolved HUDI-3946.
------------------------------

> Validate option path in flink hudi sink
> ---------------------------------------
>
>                 Key: HUDI-3946
>                 URL: https://issues.apache.org/jira/browse/HUDI-3946
>             Project: Apache Hudi
>          Issue Type: Improvement
>          Components: flink
>            Reporter: Ruguo Yu
>            Priority: Minor
>              Labels: pull-request-available
>             Fix For: 0.11.0, 0.11.1
>
>
> We should do a non-null check on option 'path'[{color:#ff0000}*1*{color}] in 
> flink hudi sink so that flink can expose the 'path' problem as early as 
> possible, instead of throwing the error[{color:#FF0000}*2*{color}] at runtime.
> [{color:#ff0000}*1*{color}]
> {code:java}
> CREATE TABLE t1(
>   uuid VARCHAR(20) PRIMARY KEY NOT ENFORCED,
>   name VARCHAR(10),
>   age INT,
>   ts TIMESTAMP(3),
>   `partition` VARCHAR(20)
> )
> PARTITIONED BY (`partition`)
> WITH (
>   'connector' = 'hudi',
>   'path' = '${path}'
> );
> INSERT INTO t1 VALUES
>   ('id1','Danny',23,TIMESTAMP '1970-01-01 00:00:01','par1'),
>   ('id2','Stephen',33,TIMESTAMP '1970-01-01 00:00:02','par1'),
>   ('id3','Julian',53,TIMESTAMP '1970-01-01 00:00:03','par2'),
>   ('id4','Fabian',31,TIMESTAMP '1970-01-01 00:00:04','par2'),
>   ('id5','Sophia',18,TIMESTAMP '1970-01-01 00:00:05','par3'),
>   ('id6','Emma',20,TIMESTAMP '1970-01-01 00:00:06','par3'),
>   ('id7','Bob',44,TIMESTAMP '1970-01-01 00:00:07','par4'),
>   ('id8','Han',56,TIMESTAMP '1970-01-01 00:00:08','par4'); {code}
> [{color:#ff0000}*2*{color}]
> {code:java}
> Caused by: java.lang.IllegalArgumentException: Can not create a Path from a 
> null string
>         at org.apache.hadoop.fs.Path.checkPathArg(Path.java:122) 
> ~[hadoop-common-2.7.6.jar:?]
>         at org.apache.hadoop.fs.Path.<init>(Path.java:134) 
> ~[hadoop-common-2.7.6.jar:?]
>         at org.apache.hudi.common.fs.FSUtils.getFs(FSUtils.java:103) 
> ~[hudi-flink1.14-bundle_2.11-0.11.0-rc1.jar:0.11.0-rc1]
>         at 
> org.apache.hudi.util.StreamerUtil.tableExists(StreamerUtil.java:289) 
> ~[hudi-flink1.14-bundle_2.11-0.11.0-rc1.jar:0.11.0-rc1]
>         at 
> org.apache.hudi.util.StreamerUtil.initTableIfNotExists(StreamerUtil.java:258) 
> ~[hudi-flink1.14-bundle_2.11-0.11.0-rc1.jar:0.11.0-rc1]
>         at 
> org.apache.hudi.sink.StreamWriteOperatorCoordinator.start(StreamWriteOperatorCoordinator.java:172)
>  ~[hudi-flink1.14-bundle_2.11-0.11.0-rc1.jar:0.11.0-rc1]
>         at 
> org.apache.flink.runtime.operators.coordination.OperatorCoordinatorHolder.start(OperatorCoordinatorHolder.java:194)
>  ~[flink-dist_2.11-1.14.2.jar:1.14.2]
>         at 
> org.apache.flink.runtime.scheduler.DefaultOperatorCoordinatorHandler.startAllOperatorCoordinators(DefaultOperatorCoordinatorHandler.java:85)
>  ~[flink-dist_2.11-1.14.2.jar:1.14.2]
>         at 
> org.apache.flink.runtime.scheduler.SchedulerBase.startScheduling(SchedulerBase.java:584)
>  ~[flink-dist_2.11-1.14.2.jar:1.14.2]
>         at 
> org.apache.flink.runtime.jobmaster.JobMaster.startScheduling(JobMaster.java:965)
>  ~[flink-dist_2.11-1.14.2.jar:1.14.2]
>         at 
> org.apache.flink.runtime.jobmaster.JobMaster.startJobExecution(JobMaster.java:882)
>  ~[flink-dist_2.11-1.14.2.jar:1.14.2]
>         at 
> org.apache.flink.runtime.jobmaster.JobMaster.onStart(JobMaster.java:389) 
> ~[flink-dist_2.11-1.14.2.jar:1.14.2]
>         at 
> org.apache.flink.runtime.rpc.RpcEndpoint.internalCallOnStart(RpcEndpoint.java:181)
>  ~[flink-dist_2.11-1.14.2.jar:1.14.2]
>         at 
> org.apache.flink.runtime.rpc.akka.AkkaRpcActor$StoppedState.lambda$start$0(AkkaRpcActor.java:624)
>  ~[flink-rpc-akka_a8af7b4c-9c0c-4ac4-a1b1-1690068e50df.jar:1.14.2]
>         at 
> org.apache.flink.runtime.concurrent.akka.ClassLoadingUtils.runWithContextClassLoader(ClassLoadingUtils.java:68)
>  ~[flink-rpc-akka_a8af7b4c-9c0c-4ac4-a1b1-1690068e50df.jar:1.14.2]
>         at 
> org.apache.flink.runtime.rpc.akka.AkkaRpcActor$StoppedState.start(AkkaRpcActor.java:623)
>  ~[flink-rpc-akka_a8af7b4c-9c0c-4ac4-a1b1-1690068e50df.jar:1.14.2]
>         ... 20 more {code}



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to