[ 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