Index: hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java =================================================================== --- hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java (revision 1550673) +++ hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java (working copy) @@ -143,7 +143,6 @@ } // check if we need set current region in recovering state - region.setRecovering(false); Map recoveringRegions = this.rsServices.getRecoveringRegions(); if (recoveringRegions != null && !recoveringRegions.isEmpty() && recoveringRegions.containsKey(region.getRegionInfo().getEncodedName())) { Index: hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java =================================================================== --- hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java (revision 1550673) +++ hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java (working copy) @@ -556,6 +556,13 @@ this.disallowWritesInRecovering = conf.getBoolean(HConstants.DISALLOW_WRITES_IN_RECOVERING, HConstants.DEFAULT_DISALLOW_WRITES_IN_RECOVERING_CONFIG); + if (rsServices != null) { + Map recoveringRegions = rsServices.getRecoveringRegions(); + if (recoveringRegions != null + && recoveringRegions.containsKey(getRegionInfo().getEncodedName())) { + this.isRecovering = true; + } + } } void setHTableSpecificConf() {