[
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:
-----------------------------------
[[email protected]] 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)