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

stack resolved HBASE-3918.
--------------------------

    Resolution: Not A Problem

Resolving as 'not a problem'.  When I look at bulk assigning code that tries to 
retain assignments, I see that for each region we are to assign, we check that 
the ServerName is known -- that it is a server that has registered itself on 
cluster start:

{code}
    int numRandomAssignments = 0;
    int numRetainedAssigments = 0;
    for (Map.Entry<HRegionInfo, ServerName> entry : regions.entrySet()) {
      HRegionInfo region = entry.getKey();
      ServerName oldServerName = entry.getValue();
      List<ServerName> localServers = new ArrayList<ServerName>();
      if (oldServerName != null) {
        localServers = serversByHostname.get(oldServerName.getHostname());
      }
      if (localServers.isEmpty()) {
        // No servers on the new cluster match up with this hostname,
        // assign randomly.
        ServerName randomServer = servers.get(RANDOM.nextInt(servers.size()));
...
{code}

We can open new issue if we run into this again.
                
> When assigning regions to an address, check the regionserver is actually 
> online first
> -------------------------------------------------------------------------------------
>
>                 Key: HBASE-3918
>                 URL: https://issues.apache.org/jira/browse/HBASE-3918
>             Project: HBase
>          Issue Type: Bug
>            Reporter: stack
>
> This one came up in the case where the data was copied from one cluster to 
> another.  The first cluster was running 0.89.x.  The second 0.90.x.  On 
> startup of 0.90.x, it wanted to verify .META. was in the location -ROOT- said 
> it was at, so it tried connect to the FIRST cluster.  The attempt failed 
> because of mismatched RPCs.  The master then actually aborted.
> {code}
> org.apache.hadoop.hbase.ipc.HBaseRPC$VersionMismatch: Protocol 
> org.apache.hadoop.hbase.ipc.HRegionInterface version mismatch. (client = 27, 
> server = 24)
> at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:424)
> at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:393)
> at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:444)
> at org.apache.hadoop.hbase.ipc.HBaseRPC.waitForProxy(HBaseRPC.java:349)
> at 
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getHRegionConnection(HConnectionManager.java:965)
> at 
> org.apache.hadoop.hbase.catalog.CatalogTracker.getCachedConnection(CatalogTracker.java:386)
> at 
> org.apache.hadoop.hbase.catalog.CatalogTracker.getMetaServerConnection(CatalogTracker.java:285)
> at 
> org.apache.hadoop.hbase.catalog.CatalogTracker.verifyMetaRegionLocation(CatalogTracker.java:486)
> at org.apache.hadoop.hbase.master.HMaster.assignRootAndMeta(HMaster.java:442)
> at 
> org.apache.hadoop.hbase.master.HMaster.finishInitialization(HMaster.java:389)
> at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:283)
> 2011-05-23 22:38:07,720 INFO org.apache.hadoop.hbase.master.HMaster: Aborting
> {code}

--
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

Reply via email to