hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aditya Kishore (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HBASE-6760) HMaster.balance() returns 'true' even if rebalancing plan is empty and the balancer does not run
Date Tue, 11 Sep 2012 18:34:07 GMT
Aditya Kishore created HBASE-6760:
-------------------------------------

             Summary: HMaster.balance() returns 'true' even if rebalancing plan is empty and
the balancer does not run
                 Key: HBASE-6760
                 URL: https://issues.apache.org/jira/browse/HBASE-6760
             Project: HBase
          Issue Type: Bug
          Components: master
            Reporter: Aditya Kishore
            Assignee: Aditya Kishore
            Priority: Minor


The issue seems to exists due to oversight during the rewrite. In line 1289, the variable
'plans' is created as a 'new ArrayList<RegionPlan>()' and then in line 1298, balancerRan
is calculated as (plans != null) which for obvious reason, will always return true.

{code:title=HMaster.java (trunk:1383496)}
....
1289        List<RegionPlan> plans = new ArrayList<RegionPlan>();
1290        //Give the balancer the current cluster state.
1291        this.balancer.setClusterStatus(getClusterStatus());
1292        for (Map<ServerName, List<HRegionInfo>> assignments : assignmentsByTable.values())
{
1293          List<RegionPlan> partialPlans = this.balancer.balanceCluster(assignments);
1294          if (partialPlans != null) plans.addAll(partialPlans);
1295        }
1296        int rpCount = 0;  // number of RegionPlans balanced so far
1297        long totalRegPlanExecTime = 0;
1298        balancerRan = plans != null;
1299        if (plans != null && !plans.isEmpty()) {
....
{code}

A simple fix is to initialize 'balancerRan' to 'false', remove "balancerRan = plans != null"
and add "balancerRan = true" after "if (plans != null && !plans.isEmpty()) {".

However, a question remains that should we call "this.cpHost.postBalance();" if the balancer
did not run at this point?

I'll attach the patch shortly if I get a confirmation on this.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message