[
https://issues.apache.org/jira/browse/FLINK-4725?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kostas Kloudas closed FLINK-4725.
---------------------------------
Resolution: Fixed
> BucketingSink throws NPE while restoring state if basePath does not exist
> -------------------------------------------------------------------------
>
> Key: FLINK-4725
> URL: https://issues.apache.org/jira/browse/FLINK-4725
> Project: Flink
> Issue Type: Bug
> Components: filesystem-connector
> Affects Versions: 1.2.0, 1.1.2
> Reporter: Jordan Ganoff
> Priority: Blocker
>
> BucketingSink throws a NullPointerException when attempting to clean up
> pending files if the basePath does not exist.
> The culprit is a [call to org.apache.hadoop.fs.FileSystem.listFiles() on line
> 784|https://github.com/apache/flink/blob/master/flink-streaming-connectors/flink-connector-filesystem/src/main/java/org/apache/flink/streaming/connectors/fs/bucketing/BucketingSink.java#L784].
> I added this longer description from the duplicate FLINK-4779 (aljoscha):
> When I restore from a savepoint, starting the job fails when the root-folder
> used by the BucketingSink not yet exists. This may happen in my case, when
> the source for my sink has not yet emitted any messages and I did not create
> the folder by hand.
> The complete folder structure is not required by the BucketingSink as it will
> create itermediate folders by itself when creating the bucket.
> I suggest that this does not prevent the job from being restarted.
> {code}
> 10/07/2016 22:50:53 Source: Kafka Consumer for X -> (Sink: HDFS for X,
> Sink: X)(1/1) switched to FAILED
> java.lang.Exception: Failed to restore state to function: Error while
> deleting old pending files.
> at
> org.apache.flink.streaming.api.operators.AbstractUdfStreamOperator.restoreState(AbstractUdfStreamOperator.java:184)
> at
> org.apache.flink.streaming.runtime.tasks.StreamTask.restoreState(StreamTask.java:550)
> at
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:255)
> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:609)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.RuntimeException: Error while deleting old pending files.
> at
> org.apache.flink.streaming.connectors.fs.bucketing.BucketingSink.restoreState(BucketingSink.java:805)
> at
> org.apache.flink.streaming.connectors.fs.bucketing.BucketingSink.restoreState(BucketingSink.java:139)
> at
> org.apache.flink.streaming.api.operators.AbstractUdfStreamOperator.restoreState(AbstractUdfStreamOperator.java:182)
> ... 4 more
> Caused by: java.io.FileNotFoundException: File
> hdfs://server:8020/1/2/3/4/flink does not exist.
> at
> org.apache.hadoop.hdfs.DistributedFileSystem$DirListingIterator.<init>(DistributedFileSystem.java:948)
> at
> org.apache.hadoop.hdfs.DistributedFileSystem$DirListingIterator.<init>(DistributedFileSystem.java:927)
> at
> org.apache.hadoop.hdfs.DistributedFileSystem$19.doCall(DistributedFileSystem.java:872)
> at
> org.apache.hadoop.hdfs.DistributedFileSystem$19.doCall(DistributedFileSystem.java:868)
> at
> org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)
> at
> org.apache.hadoop.hdfs.DistributedFileSystem.listLocatedStatus(DistributedFileSystem.java:886)
> at
> org.apache.hadoop.fs.FileSystem.listLocatedStatus(FileSystem.java:1696)
> at org.apache.hadoop.fs.FileSystem$6.<init>(FileSystem.java:1791)
> at org.apache.hadoop.fs.FileSystem.listFiles(FileSystem.java:1787)
> at
> org.apache.flink.streaming.connectors.fs.bucketing.BucketingSink.restoreState(BucketingSink.java:784)
> ... 6 more
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)