[jira] [Updated] (HBASE-11405) Multiple invocations of hbck in parallel disables balancer permanently
[ https://issues.apache.org/jira/browse/HBASE-11405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Yu updated HBASE-11405: --- Attachment: 11405-0.98-v2.patch Rebased patch for 0.98 > 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-0.98-v2.patch, 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)
[jira] [Updated] (HBASE-11405) Multiple invocations of hbck in parallel disables balancer permanently
[ 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)
[jira] [Updated] (HBASE-11405) Multiple invocations of hbck in parallel disables balancer permanently
[ https://issues.apache.org/jira/browse/HBASE-11405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lars Hofhansl updated HBASE-11405: -- Fix Version/s: (was: 0.94.24) 0.94.25 > 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-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)
[jira] [Updated] (HBASE-11405) Multiple invocations of hbck in parallel disables balancer permanently
[ https://issues.apache.org/jira/browse/HBASE-11405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell updated HBASE-11405: --- Fix Version/s: 0.94.24 0.98.7 Reopened and updated fix versions > 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.94.24, 0.99.1 > > Attachments: 11405-1.0.txt, 11405-v3.txt, 11405-v5.patch, > 11405-v6.patch, 11405v7.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)
[jira] [Updated] (HBASE-11405) Multiple invocations of hbck in parallel disables balancer permanently
[ https://issues.apache.org/jira/browse/HBASE-11405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Yu updated HBASE-11405: --- Attachment: 11405-1.0.txt > 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 > > Attachments: 11405-1.0.txt, 11405-v3.txt, 11405-v5.patch, > 11405-v6.patch, 11405v7.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)
[jira] [Updated] (HBASE-11405) Multiple invocations of hbck in parallel disables balancer permanently
[ https://issues.apache.org/jira/browse/HBASE-11405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Hsieh updated HBASE-11405: --- Fix Version/s: (was: 0.99.1) > 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 > > Attachments: 11405-v3.txt, 11405-v5.patch, 11405-v6.patch, > 11405v7.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)
[jira] [Updated] (HBASE-11405) Multiple invocations of hbck in parallel disables balancer permanently
[ https://issues.apache.org/jira/browse/HBASE-11405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] bharath v updated HBASE-11405: -- Attachment: 11405v7.patch v7 - Addressed Sean's comments on the RB. - Few minor changes > 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.99.1 > > Attachments: 11405-v3.txt, 11405-v5.patch, 11405-v6.patch, > 11405v7.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)
[jira] [Updated] (HBASE-11405) Multiple invocations of hbck in parallel disables balancer permanently
[ https://issues.apache.org/jira/browse/HBASE-11405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Hsieh updated HBASE-11405: --- Resolution: Fixed Fix Version/s: 0.99.1 2.0.0 Hadoop Flags: Reviewed Status: Resolved (was: Patch Available) thanks bharath, and thanks sean and ted for reviews. committed to branch-1 and master. > 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.99.1 > > Attachments: 11405-v3.txt, 11405-v5.patch, 11405-v6.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)
[jira] [Updated] (HBASE-11405) Multiple invocations of hbck in parallel disables balancer permanently
[ https://issues.apache.org/jira/browse/HBASE-11405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] bharath v updated HBASE-11405: -- Attachment: 11405-v6.patch v6 summary - Moved unlockHbck() from exec() to onlineHbck() method, since some of the tests directly call onlineHbck() rather than going via exec. This makes sure we cleanup the lock in tests - Small bug in compareAndSet(), misread the doc, fixed it, also setting it to (false) inside the block to make sure tests using the same HBck object doesn't fail. > 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, 11405-v6.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)
[jira] [Updated] (HBASE-11405) Multiple invocations of hbck in parallel disables balancer permanently
[ https://issues.apache.org/jira/browse/HBASE-11405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] bharath v updated HBASE-11405: -- Attachment: 11405-v5.patch > 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)
[jira] [Updated] (HBASE-11405) Multiple invocations of hbck in parallel disables balancer permanently
[ https://issues.apache.org/jira/browse/HBASE-11405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Yu updated HBASE-11405: --- Attachment: 11405-v3.txt Patch v3 removes the Runtime.getRuntime().exit() call. IOE is thrown instead. Test case is adjusted accordingly. > 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, 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)
[jira] [Updated] (HBASE-11405) Multiple invocations of hbck in parallel disables balancer permanently
[ https://issues.apache.org/jira/browse/HBASE-11405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Hsieh updated HBASE-11405: --- Attachment: hbase-11405.rebase.140911.patch attached updated patch with minor imports fixes. > 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: 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)
[jira] [Updated] (HBASE-11405) Multiple invocations of hbck in parallel disables balancer permanently
[ https://issues.apache.org/jira/browse/HBASE-11405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] bharath v updated HBASE-11405: -- Attachment: HBASE-11405-trunk-rebased.patch Rebased the patch to trunk. > 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: HBASE-11405-trunk-rebased.patch, > HBASE-11405-trunk.patch, HBASE-11405-trunk.patch.1 > > > 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.2#6252)
[jira] [Updated] (HBASE-11405) Multiple invocations of hbck in parallel disables balancer permanently
[ https://issues.apache.org/jira/browse/HBASE-11405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] bharath v updated HBASE-11405: -- Attachment: HBASE-11405-trunk.patch.1 v1 addresses comments from Ted. > 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 > Attachments: HBASE-11405-trunk.patch, HBASE-11405-trunk.patch.1 > > > 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.2#6252)
[jira] [Updated] (HBASE-11405) Multiple invocations of hbck in parallel disables balancer permanently
[ https://issues.apache.org/jira/browse/HBASE-11405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] bharath v updated HBASE-11405: -- Status: Patch Available (was: Open) > 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 > Attachments: HBASE-11405-trunk.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.2#6252)
[jira] [Updated] (HBASE-11405) Multiple invocations of hbck in parallel disables balancer permanently
[ https://issues.apache.org/jira/browse/HBASE-11405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] bharath v updated HBASE-11405: -- Attachment: HBASE-11405-trunk.patch This patch creates a file in / and maintains a lease on it till hbck exits. Parallel instances of hbck check if such a file exists and bail out if necessary. Added a shutdownhook() to this class to clean up the lock file incase user kills hbck with a SIGTERM. I make sure that the cleanup is done only once using a flag. > 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 > Attachments: HBASE-11405-trunk.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.2#6252)