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

Steve Loughran commented on HADOOP-8096:
----------------------------------------

The place where it would be useful is those routines that see themselves in a 
mess and go {{LOG.error(text, e); System.exit(-1)}}. In classes in the main 
thread translating this to an exception and raising it will intercept the 
problem and can trigger a more graceful shutdown in an OSGi container.

What is tricky is threads who make the same call; translate this to an 
exception and the thread goes away, but the exception isn't reported up and the 
code keeps going, only now some thread has disappeared. In this situation 
there's a need to report the problem to the container.

The OSGi experts need to be involved here, as the only thing I can think of is 
having the {{catch(SecurityException se)}} handler look for some JVM property 
giving the name of a class to load and reflect into that for a method like 
{{systemExitCalled(...)}}. Which puts you straight into the world of OSGi 
classloaders, as this handler would presumably be something in the container.  

Of course, that could be feature creep once the method is in - and system 
behaviour will be the same as normal when not run under a security handler. 
                
> add single point where System.exit() is called for better handling in 
> containers
> --------------------------------------------------------------------------------
>
>                 Key: HADOOP-8096
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8096
>             Project: Hadoop Common
>          Issue Type: New Feature
>          Components: util
>    Affects Versions: 0.24.0
>            Reporter: Steve Loughran
>            Assignee: Csaba Miklos
>            Priority: Trivial
>             Fix For: 0.24.0
>
>         Attachments: HADOOP-8096.patch
>
>
> with plans for OSGI integration afoot in HADOOP-7977, Hadoop needs unified 
> place where System.exit() calls. When one runs any bit of Hadoop in a 
> containers the container will block those exits with a security manager and 
> convert the calls into security exceptions. A single exit method would enable 
> such exceptions to be logged, and conceivably handled slightly more 
> gracefully (e.g. tell the daemon to die).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to