You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@accumulo.apache.org by "Eric Newton (JIRA)" <ji...@apache.org> on 2014/04/02 16:29:21 UTC

[jira] [Commented] (ACCUMULO-2561) Make o.a.a.server.util.Halt test-friendly

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

Eric Newton commented on ACCUMULO-2561:
---------------------------------------

{{Halt}} could be a replaceable singleton.

The decision to call halt is due to some catastrophic failure:

 * loss of distributed lock (as described in the BigTable paper)
 * detection of high GC overhead, which precedes distributed lock failure
 * bad system password detected (defence of mis-configured cluster)
 * failure to open/use a communications port
 * filesystem transitions to read-only

Some of these could be translated into exceptions that bubble back to a controlled shutdown but some of them happen in monitoring threads, and the cost of corruption for multiple masters or tablet assignment is just too great to let all the threads finish gracefully.

Only the last check really needs an explanation.  Originally, this check was done in the logger, and it was useful to avoid trying to create new WALogs on failing machines.  But it has proven useful to find these nodes and notify administrators immediately.

> Make o.a.a.server.util.Halt test-friendly
> -----------------------------------------
>
>                 Key: ACCUMULO-2561
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-2561
>             Project: Accumulo
>          Issue Type: Improvement
>            Reporter: Bill Havanki
>            Priority: Minor
>              Labels: testability
>
> The various servers use {{o.a.a.server.util.Halt}} to terminate the JVM if something goes wrong. {{Halt}} class calls {{Runtime.halt()}}, which of course would torpedo any testing going on. The mechanism should be reworked to not kill the JVM in a test scenario.



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