Most of the regions were added into AssignmentManager#servers twice
-------------------------------------------------------------------

                 Key: HBASE-4053
                 URL: https://issues.apache.org/jira/browse/HBASE-4053
             Project: HBase
          Issue Type: Bug
          Components: master
    Affects Versions: 0.90.3
            Reporter: Jieshan Bean
             Fix For: 0.90.4


Here's the scenario of how did the problem happened:

1. When HMaster start, all regionservers checkin ok, and count of regions out 
on cluster is 10083, which is the actual region number count.
2. Then OpenedRegionHandler#process received zookeeper's events, and added 9923 
regions to the hris list.
   but the 9923 regions already exists, force added.
3. The LoadBalancer get the wrong Region numbers of 20006 (10083 + 9923).

AssignmentManager#addToServers method:
private void addToServers(final HServerInfo hsi, final HRegionInfo hri) {
  List<HRegionInfo> hris = servers.get(hsi);
  if (hris == null) {
    hris = new ArrayList<HRegionInfo>();
    servers.put(hsi, hris);
  }
  hris.add(hri); // Same region was double added here
}

logs:
2011-06-27 16:13:06,845 INFO org.apache.hadoop.hbase.master.ServerManager: 
Exiting wait on regionserver(s) to checkin; count=3, stopped=false, count of 
regions out on cluster=10083
2011-06-27 16:13:17,334 INFO org.apache.hadoop.hbase.master.AssignmentManager: 
Failed-over master needs to process 9923 regions in transition
2011-06-27 16:21:45,135 DEBUG org.apache.hadoop.hbase.master.LoadBalancer: 
Balance parameter: numRegions=20006, numServers=3, max=6669, min=6668

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to