hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "bharath v (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-11405) Multiple invocations of hbck in parallel disables balancer permanently
Date Mon, 15 Sep 2014 06:52:35 GMT

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

bharath v commented on HBASE-11405:
-----------------------------------

[~tedyu@apache.org] Sorry, attached it now. Made some minor changes [Comments on review board]
[~busbey] Since we are throwing an IOEx , doFsck won't return an HBaseFsck object and hence
it doesn't matter what return value we set. Since we are doing

{code:title=|borderStyle=solid}
          if (e.getMessage().contains("Duplicate hbck")) {
            fail = false;
          }
        }
        // If we reach here, then an exception was caught
        if (fail) fail();
        return null;
      }
{code}

It actually confirms that the issue is due to multiple hbcks. This approach looks good to
me. What do you think?

> Multiple invocations of hbck in parallel disables balancer permanently 
> -----------------------------------------------------------------------
>
>                 Key: HBASE-11405
>                 URL: https://issues.apache.org/jira/browse/HBASE-11405
>             Project: HBase
>          Issue Type: Bug
>          Components: Balancer, hbck
>    Affects Versions: 0.99.0
>            Reporter: bharath v
>            Assignee: bharath v
>         Attachments: 11405-v3.txt, 11405-v5.patch, HBASE-11405-trunk-rebased.patch, HBASE-11405-trunk.patch,
HBASE-11405-trunk.patch.1, hbase-11405.rebase.140911.patch
>
>
> This is because of the following piece of code in hbck
> {code:borderStyle=solid}
>   boolean oldBalancer = admin.setBalancerRunning(false, true);
>     try {
>       onlineConsistencyRepair();
>     }
>     finally {
>       admin.setBalancerRunning(oldBalancer, false);
>     }
> {code}
> Newer invocations set oldBalancer to false as it was disabled by previous invocations
and this disables balancer permanently unless its manually turned on by the user. Easy to
reproduce, just run hbck 100 times in a loop in 2 different sessions and you can see that
balancer is set to false in the HMaster logs.



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

Mime
View raw message