HBASE-20363 Addendum wait until region is splittable
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/bc35de59 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/bc35de59 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/bc35de59 Branch: refs/heads/HBASE-19064 Commit: bc35de597d07b41d7456a38fc2cb771c9292429a Parents: c7593d1 Author: zhangduo <zhang...@apache.org> Authored: Mon Apr 9 09:04:32 2018 +0800 Committer: zhangduo <zhang...@apache.org> Committed: Mon Apr 9 09:07:06 2018 +0800 ---------------------------------------------------------------------- .../hadoop/hbase/namespace/TestNamespaceAuditor.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/bc35de59/hbase-server/src/test/java/org/apache/hadoop/hbase/namespace/TestNamespaceAuditor.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/namespace/TestNamespaceAuditor.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/namespace/TestNamespaceAuditor.java index 40aba85..1b4957a 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/namespace/TestNamespaceAuditor.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/namespace/TestNamespaceAuditor.java @@ -361,8 +361,14 @@ public class TestNamespaceAuditor { hris = ADMIN.getRegions(tableTwo); assertEquals(initialRegions - 1, hris.size()); Collections.sort(hris, RegionInfo.COMPARATOR); - UTIL.compact(tableTwo, true); - ADMIN.splitRegionAsync(hris.get(0).getRegionName(), Bytes.toBytes("3")).get(10, + byte[] splitKey = Bytes.toBytes("3"); + HRegion regionToSplit = UTIL.getMiniHBaseCluster().getRegions(tableTwo).stream() + .filter(r -> r.getRegionInfo().containsRow(splitKey)).findFirst().get(); + regionToSplit.compact(true); + // the above compact may quit immediately if there is a compaction ongoing, so here we need to + // wait a while to let the ongoing compaction finish. + UTIL.waitFor(10000, regionToSplit::isSplittable); + ADMIN.splitRegionAsync(regionToSplit.getRegionInfo().getRegionName(), splitKey).get(10, TimeUnit.SECONDS); hris = ADMIN.getRegions(tableTwo); assertEquals(initialRegions, hris.size());