From e8a9b33df2abab4f16700d0717fb02a0dfaf42da Mon Sep 17 00:00:00 2001 From: Toshihiro Suzuki Date: Mon, 27 Aug 2018 23:40:03 +0900 Subject: [PATCH] HBASE-21084 When cloning a snapshot including a split parent region, the split parent region of the cloned table will be online - addendum --- .../java/org/apache/hadoop/hbase/client/RegionReplicaUtil.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionReplicaUtil.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionReplicaUtil.java index 9c5af37..259f581 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionReplicaUtil.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionReplicaUtil.java @@ -175,12 +175,13 @@ public class RegionReplicaUtil { return regions; } List hRegionInfos = new ArrayList<>((newReplicaCount) * regions.size()); - for (int i = 0; i < regions.size(); i++) { - if (RegionReplicaUtil.isDefaultReplica(regions.get(i))) { + for (RegionInfo ri : regions) { + if (RegionReplicaUtil.isDefaultReplica(ri) && + (!ri.isOffline() || (!ri.isSplit() && !ri.isSplitParent()))) { // region level replica index starts from 0. So if oldReplicaCount was 2 then the max replicaId for // the existing regions would be 1 for (int j = oldReplicaCount; j < newReplicaCount; j++) { - hRegionInfos.add(RegionReplicaUtil.getRegionInfoForReplica(regions.get(i), j)); + hRegionInfos.add(RegionReplicaUtil.getRegionInfoForReplica(ri, j)); } } } -- 2.10.1 (Apple Git-78)