diff --git hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java index 51bcc54..6c5b66c 100644 --- hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java +++ hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java @@ -1389,7 +1389,13 @@ public class MetaTableAccessor { // region replicas are kept in the primary region's row Put put = new Put(getMetaKeyForRegion(regionInfo), time); - addRegionInfo(put, regionInfo); + + HRegionInfo defaultRegionInfo = regionInfo; + if (regionInfo.getReplicaId() != HRegionInfo.DEFAULT_REPLICA_ID) { + defaultRegionInfo = new HRegionInfo(regionInfo, HRegionInfo.DEFAULT_REPLICA_ID); + } + addRegionInfo(put, defaultRegionInfo); + addLocation(put, sn, openSeqNum, time, regionInfo.getReplicaId()); putToMetaTable(connection, put); LOG.info("Updated row " + regionInfo.getRegionNameAsString() +