[ 
https://issues.apache.org/jira/browse/HBASE-11405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sean Busbey updated HBASE-11405:
--------------------------------
    Attachment: HBASE-11405-0.94.patch.txt
                HBASE-11405-0.98.patch.txt

Here's an amended version specific to each of 0.98 and 0.94 that works under 
profiles for hadoop 1.0, 1.1, and 2.x. Due to the amount of change, I added an 
Amending-Author to the commit message.

I've run through {{-Dtest=TestHBaseFsck}} for the above profiles and 
{{-PrunSmallTests}} for whatever the default profile is on each branch. NB 
running TestHBaseFsck on 0.94 required {{-PlocalTests}}.

Fixing this involved exposing a previously private method for 
HBaseTestingUtility under 0.94. Since nothing else needed it in 0.98 I marked 
it deprecated with a note that it would disappear with Hadoop 1.x support. 
Since the method isn't in branch-1 or later, that should work out well.

One worry: some of the TestHBaseFsck tests get a bit flaky on 0.94 with this 
change on my laptop (which admittedly is underpowered). However, even leaving 
in a single retry period causes the parallel test to fail because the first 
invocation finished in < 1 sec.

> 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
>             Fix For: 2.0.0, 0.98.7, 0.99.1, 0.94.25
>
>         Attachments: 11405-1.0.txt, 11405-v3.txt, 11405-v5.patch, 
> 11405-v6.patch, 11405v7.patch, HBASE-11405-0.94.patch.txt, 
> HBASE-11405-0.98.patch.txt, 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)

Reply via email to