[ 
https://issues.apache.org/jira/browse/HADOOP-3818?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12617005#action_12617005
 ] 

Rowan Nairn commented on HADOOP-3818:
-------------------------------------

bq. For deleting file on exit, we should use FileSystem.deleteOnExit(Path f), 
instead of a ShutdownHook.

This doesn't seem to fit my use case.  I want to delete an unfinished MapRed 
output directory from HDFS *only* if the user terminates the process.

> 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.

Reply via email to