hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stephen Yuan Jiang (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-15406) Split / merge switch left disabled after early termination of hbck
Date Mon, 20 Jun 2016 19:05:58 GMT

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

Stephen Yuan Jiang commented on HBASE-15406:
--------------------------------------------

When working on HBASE-16008 to add an ephemeral znode to indicate that hbck is running and
master maintenance threads should not running, I think there is a simpler idea (surprised
that no one brought this up).  The problem is that the state change of balancer, split/merge
switch, catalog janitor would not be reset when HBCK is terminated by Control-C.  

I saw the following code in the HBCK code: 
{code}
  public void connect() throws IOException {
     ...
    // Add a shutdown hook to this thread, in case user tries to
    // kill the hbck with a ctrl-c, we want to cleanup the lock so that
    // it is available for further calls
    Runtime.getRuntime().addShutdownHook(new Thread() {
      @Override
      public void run() {
        IOUtils.closeQuietly(HBaseFsck.this);
        unlockHbck();
      }
    });
   ...
{code}

Why don't we just push re-set state code in this location and then no problem at all, [~enis]?
 (I agree that ephemeral znode would be more robust and extensible, but this simple re-set
in {{Runtime.getRuntime().addShutdownHook}} is much simpler)

> Split / merge switch left disabled after early termination of hbck
> ------------------------------------------------------------------
>
>                 Key: HBASE-15406
>                 URL: https://issues.apache.org/jira/browse/HBASE-15406
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Ted Yu
>            Assignee: Heng Chen
>              Labels: reviewed
>             Fix For: 2.0.0, 1.3.0, 1.4.0
>
>         Attachments: HBASE-15406.patch, HBASE-15406.v1.patch, HBASE-15406_v1.patch, HBASE-15406_v2.patch,
test.patch, wip.patch
>
>
> This was what I did on cluster with 1.4.0-SNAPSHOT built Thursday:
> Run 'hbase hbck -disableSplitAndMerge' on gateway node of the cluster
> Terminate hbck early
> Enter hbase shell where I observed:
> {code}
> hbase(main):001:0> splitormerge_enabled 'SPLIT'
> false
> 0 row(s) in 0.3280 seconds
> hbase(main):002:0> splitormerge_enabled 'MERGE'
> false
> 0 row(s) in 0.0070 seconds
> {code}
> Expectation is that the split / merge switches should be restored to default value after
hbck exits.



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

Mime
View raw message