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

Steve Loughran resolved HDFS-8.
-------------------------------

    Resolution: Cannot Reproduce

closing as so out of date it probably doesn't happen -and if it does, the stack 
trace is obsolete

> Interrupting the namenode thread triggers System.exit()
> -------------------------------------------------------
>
>                 Key: HDFS-8
>                 URL: https://issues.apache.org/jira/browse/HDFS-8
>             Project: Hadoop HDFS
>          Issue Type: Bug
>            Reporter: Steve Loughran
>            Priority: Minor
>
> My service setup/teardown tests are managing to trigger system exits in the 
> namenode, which seems overkill.
> 1. Interrupting the thread that is starting the namesystem up raises a 
> java.nio.channels.ClosedByInterruptException.
> 2. This is caught in FSImage.rollFSImage, and handed off to processIOError
> 3. This triggers a call to Runtime.getRuntime().exit(-1); "All storage 
> directories are inaccessible.".
> Stack trace to follow. Exiting the JVM is somewhat overkill; if someone has 
> interrupted the thread is is (presumably) because they want to stop the 
> namenode, which may not imply they want to kill the JVM at the same time. 
> Certainly JUnit does not expect it. 
> Some possibilities
>  -ClosedByInterruptException get handled differently as some form of shutdown 
> request
>  -Calls to system exit are factored out into something that can have its 
> behaviour changed by policy options to throw a RuntimeException instead. 
> Hosting a Namenode in a security manager that blocks off System.exit() is the 
> simplest workaround; this is fairly simple, but it means that what would be a 
> straight exit does now get turned into an exception, so callers may be 
> surprised by what happens.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to