hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aaron T. Myers (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDFS-3582) Hook System.exit in MiniDFSCluster
Date Tue, 03 Jul 2012 21:30:34 GMT

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

Aaron T. Myers commented on HDFS-3582:
--------------------------------------

Instead of mucking with SecurityManager at all, I'm personally in favor of changing all references
to System.exit to use Runtime#exit instead, and then mocking that out in MiniDFSCluster and
asserting that Runtime#exit was never called on MiniDFSCluster shutdown. This strategy is
already used by a few tests (e.g. TestEditLogJournalFailures) to assert that exit *is* called
in some cases. These tests could be changed to no longer do their own mocking of Runtime objects,
and instead MiniDFSCluster could be made to optionally assert that Runtime#exit *was* called
> 0 times. This mocking as I've described will probably only need to be done in a handful
of places.

Thoughts?
                
> Hook System.exit in MiniDFSCluster
> ----------------------------------
>
>                 Key: HDFS-3582
>                 URL: https://issues.apache.org/jira/browse/HDFS-3582
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: test
>    Affects Versions: 2.0.0-alpha
>            Reporter: Eli Collins
>            Assignee: Eli Collins
>            Priority: Minor
>         Attachments: hdfs-3582.txt
>
>
> Occasionally the tests fail with "java.util.concurrent.ExecutionException: org.apache.maven.surefire.booter.SurefireBooterForkException:
> Error occurred in starting fork, check output in log" because the NN is exit'ing (via
System.exit or Runtime.exit). Unfortunately Surefire doesn't retain the log output (see SUREFIRE-871)
so the test log is empty, we don't know which part of the test triggered which exit in HDFS.
To make this debuggable, let's hook this in MiniDFSCluster  via installing a security manager
that overrides checkExit (ala TestClusterId) or mock out System.exit in the code itself. I
think the former is preferable though we'll need to keep the door open for tests that want
to set their own security manager (should be fine to override this one some times).

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

        

Mime
View raw message