[
https://issues.apache.org/jira/browse/HBASE-6760?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13453301#comment-13453301
]
Elliott Clark commented on HBASE-6760:
--------------------------------------
I would think that the cp should get called as long as the balancer ran, even
if there were no plans created or applied.
Also the naming of blancerRan is pretty confusing. appliedRegionPlans seems
like a more accurate name. Is that what we want or should it return true if
the balancer was run at all?
> 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