[
https://issues.apache.org/jira/browse/HADOOP-3818?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12616576#action_12616576
]
Rowan Nairn commented on HADOOP-3818:
-------------------------------------
bq. I think a better solution would be for FileSystem to expose an API to
register application cleanup code and guarantee that the code is invoked ahead
of the code in filesystem shutdown hook.
I'm not sure how you would do that. AFAIK there's no guaranteed ordering of
shutdown hooks. Another option would be to let FileSystems be created in
shutdown hooks with the caveat that the creator is responsible for closing the
filesystem before the hook ends.
> Not possible to access a FileSystem from within a ShutdownHook
> --------------------------------------------------------------
>
> Key: HADOOP-3818
> URL: https://issues.apache.org/jira/browse/HADOOP-3818
> Project: Hadoop Core
> Issue Type: Bug
> Components: fs
> Affects Versions: 0.17.1
> Reporter: Rowan Nairn
> Priority: Minor
>
> FileSystem uses addShutdownHook to close all FileSystems at exit. This makes
> it impossible to access a FileSystem from within your own ShutdownHook
> threads, say for deleting incomplete output. Using a pre-existing FileSystem
> object is unsafe since it may be closed by the time the thread executes.
> Using FileSystem.get(...) results in an exception:
> Exception in thread "Thread-10" java.lang.IllegalStateException: Shutdown in
> progress
> at java.lang.Shutdown.add(Shutdown.java:81)
> at java.lang.Runtime.addShutdownHook(Runtime.java:190)
> at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1293)
> at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:203)
> at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:108)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.