From f8a0b1eb52e31cbb65dfc456fc676d4f28b14e2b Mon Sep 17 00:00:00 2001 From: Phil Yang Date: Sat, 3 Dec 2016 12:50:53 +0800 Subject: [PATCH] HBASE-17246 TestSerialReplication#testRegionMerge fails in master branch --- .../src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java | 5 ++++- .../hadoop/hbase/master/procedure/MergeTableRegionsProcedure.java | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java index 2072d6d..4963355 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java @@ -1686,7 +1686,10 @@ public class MetaTableAccessor { mergedRegion.getEncodedNameAsBytes()); Put putBarrierB = makeDaughterPut(regionB.getEncodedNameAsBytes(), mergedRegion.getEncodedNameAsBytes()); - mutations = new Mutation[] { putOfMerged, deleteA, deleteB, putBarrierA, putBarrierB }; + Put putDaughter = makeParentPut(mergedRegion.getEncodedNameAsBytes(), Bytes.toBytes( + regionA.getEncodedName() + "," + regionB.getEncodedName())); + mutations = new Mutation[] { putOfMerged, deleteA, deleteB, + putBarrierA, putBarrierB, putDaughter}; } else { mutations = new Mutation[] { putOfMerged, deleteA, deleteB }; } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MergeTableRegionsProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MergeTableRegionsProcedure.java index c313700..32d7b46 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MergeTableRegionsProcedure.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MergeTableRegionsProcedure.java @@ -709,6 +709,7 @@ public class MergeTableRegionsProcedure // Add merged region and delete original regions // as an atomic update. See HBASE-7721. This update to hbase:meta makes the region // will determine whether the region is merged or not in case of failures. + if (env.getMasterServices().getAssignmentManager().onRegionTransition( getServerName(env), transition.build()) != null) { throw new IOException("Failed to update meta to add merged region that merges " -- 2.5.4 (Apple Git-61)