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

Steve Loughran commented on HADOOP-3818:
----------------------------------------

in SmartFrog we had fun with Sun JVM signal handling, which provides extra 
compatibility problems with the clean-room OSS implementations and are pretty 
hard to test. 

Maybe the classname of the class to run as a filesystem hook could be 
configurable, so someoneone could subclass and extend its shutdown code, rather 
than run race condition pain in shutdown. Which, for anyone who has tried, is 
essentially non-debuggable and therefore to be feared. 

> 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