Index: src/main/java/org/apache/hadoop/hbase/master/RegionManager.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/master/RegionManager.java (revision 963949) +++ src/main/java/org/apache/hadoop/hbase/master/RegionManager.java (working copy) @@ -179,7 +179,8 @@ } catch (IOException e) { LOG.error("Error creating event data for " + HBaseEventType.M2ZK_REGION_OFFLINE, e); } - zkWrapper.createUnassignedRegion(HRegionInfo.ROOT_REGIONINFO.getEncodedName(), data); + zkWrapper.createOrUpdateUnassignedRegion( + HRegionInfo.ROOT_REGIONINFO.getEncodedName(), data); LOG.debug("Created UNASSIGNED zNode " + regionName + " in state " + HBaseEventType.M2ZK_REGION_OFFLINE); RegionState s = new RegionState(HRegionInfo.ROOT_REGIONINFO, RegionState.State.UNASSIGNED); regionsInTransition.put(regionName, s); @@ -343,7 +344,8 @@ } catch (IOException e) { LOG.error("Error creating event data for " + HBaseEventType.M2ZK_REGION_OFFLINE, e); } - zkWrapper.createUnassignedRegion(rs.getRegionInfo().getEncodedName(), data); + zkWrapper.createOrUpdateUnassignedRegion( + rs.getRegionInfo().getEncodedName(), data); LOG.debug("Created UNASSIGNED zNode " + regionName + " in state " + HBaseEventType.M2ZK_REGION_OFFLINE); this.regionsInTransition.put(regionName, rs); } Index: src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWrapper.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWrapper.java (revision 963949) +++ src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWrapper.java (working copy) @@ -1081,7 +1081,7 @@ * @param regionName - encoded name of the region * @param data - new serialized data to update the region znode */ - public void createUnassignedRegion(String regionName, byte[] data) { + private void createUnassignedRegion(String regionName, byte[] data) { String znode = getZNode(getRegionInTransitionZNode(), regionName); if(LOG.isDebugEnabled()) { // check if this node already exists - Index: src/test/java/org/apache/hadoop/hbase/master/TestRestartCluster.java =================================================================== --- src/test/java/org/apache/hadoop/hbase/master/TestRestartCluster.java (revision 963949) +++ src/test/java/org/apache/hadoop/hbase/master/TestRestartCluster.java (working copy) @@ -71,8 +71,10 @@ } catch (IOException e) { LOG.error("Error creating event data for " + hbEventType, e); } - zkWrapper.createUnassignedRegion(HRegionInfo.ROOT_REGIONINFO.getEncodedName(), data); - zkWrapper.createUnassignedRegion(HRegionInfo.FIRST_META_REGIONINFO.getEncodedName(), data); + zkWrapper.createOrUpdateUnassignedRegion( + HRegionInfo.ROOT_REGIONINFO.getEncodedName(), data); + zkWrapper.createOrUpdateUnassignedRegion( + HRegionInfo.FIRST_META_REGIONINFO.getEncodedName(), data); LOG.debug("Created UNASSIGNED zNode for ROOT and META regions in state " + HBaseEventType.M2ZK_REGION_OFFLINE); // start the HB cluster