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

haosdent commented on MESOS-3264:
---------------------------------

How about use Runtime.addShutdownHook to call finalize()? System.exit() is not 
mean JVM would run gc before exit().

> JVM can exit prematurely following framework teardown
> -----------------------------------------------------
>
>                 Key: MESOS-3264
>                 URL: https://issues.apache.org/jira/browse/MESOS-3264
>             Project: Mesos
>          Issue Type: Bug
>          Components: java api
>    Affects Versions: 0.23.0, 0.24.0
>            Reporter: Greg Mann
>            Priority: Minor
>              Labels: java, tech-debt
>
> In Java frameworks, it is possible for the JVM to begin exiting the program - 
> via {{System.exit()}}, for example - while teardown of native objects such as 
> the SchedulerDriver and associated Executors is still in progress. 
> {{SchedulerDriver::stop()}} will return after it has sent messages to other 
> actors to begin their teardown, meanwhile the JVM is free to terminate the 
> program and thus begin executing native object destructors while those 
> objects are still in use, potentially leading to a segfault.
> This has manifested itself in flaky tests from the ExamplesTest suite (see 
> MESOS-830 and MESOS-1013), as mutexes from glog are destroyed while the 
> framework is still shutting down and attempting to log.
> Ideally, a mechanism would exist to block the Java code until a confirmation 
> that framework teardown is complete has been received.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to