Repository: hbase Updated Branches: refs/heads/0.98 7890d27ea -> 3a71fc93e refs/heads/branch-1 c95123830 -> 46f993b19 refs/heads/branch-1.0 ca8846eee -> 61fe93e5f refs/heads/master 7bff9efdd -> 7dce0d5c4
HBASE-12694 testTableExistsIfTheSpecifiedTableRegionIsSplitParent in TestSplitTransactionOnCluster class leaves regions in transition (Vandana Ayyalasomayajula) Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/7dce0d5c Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/7dce0d5c Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/7dce0d5c Branch: refs/heads/master Commit: 7dce0d5c4549a1d5986d3bc82734924219d8bb25 Parents: 7bff9ef Author: Virag Kothari <[email protected]> Authored: Wed Jan 7 10:57:47 2015 -0800 Committer: Virag Kothari <[email protected]> Committed: Wed Jan 7 10:57:47 2015 -0800 ---------------------------------------------------------------------- .../TestSplitTransactionOnCluster.java | 21 ++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/7dce0d5c/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java index 4138027..0d574f6 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java @@ -41,6 +41,7 @@ import org.apache.hadoop.fs.Path; import org.apache.hadoop.hbase.Abortable; import org.apache.hadoop.hbase.CoordinatedStateManager; import org.apache.hadoop.hbase.Coprocessor; +import org.apache.hadoop.hbase.CoprocessorEnvironment; import org.apache.hadoop.hbase.HBaseTestingUtility; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HConstants; @@ -200,7 +201,10 @@ public class TestSplitTransactionOnCluster { this.admin.split(region.getRegionName(), new byte[] {42}); // we have to wait until the SPLITTING state is seen by the master - FailingSplitRegionObserver.latch.await(); + FailingSplitRegionObserver observer = (FailingSplitRegionObserver) region + .getCoprocessorHost().findCoprocessor(FailingSplitRegionObserver.class.getName()); + assertNotNull(observer); + observer.latch.await(); LOG.info("Waiting for region to come out of RIT"); TESTING_UTIL.waitFor(60000, 1000, new Waiter.Predicate<Exception>() { @@ -266,7 +270,11 @@ public class TestSplitTransactionOnCluster { } public static class FailingSplitRegionObserver extends BaseRegionObserver { - static volatile CountDownLatch latch = new CountDownLatch(1); + volatile CountDownLatch latch; + @Override + public void start(CoprocessorEnvironment e) throws IOException { + latch = new CountDownLatch(1); + } @Override public void preSplitBeforePONR(ObserverContext<RegionCoprocessorEnvironment> ctx, byte[] splitKey, List<Mutation> metaEntries) throws IOException { @@ -649,10 +657,19 @@ public class TestSplitTransactionOnCluster { tableExists = MetaTableAccessor.tableExists(regionServer.getConnection(), tableName); assertEquals("The specified table should present.", true, tableExists); + Map<String, RegionState> rit = cluster.getMaster().getAssignmentManager().getRegionStates() + .getRegionsInTransition(); + assertTrue(rit.size() == 3); + cluster.getMaster().getAssignmentManager().regionOffline(st.getFirstDaughter()); + cluster.getMaster().getAssignmentManager().regionOffline(st.getSecondDaughter()); + cluster.getMaster().getAssignmentManager().regionOffline(region.getRegionInfo()); + rit = cluster.getMaster().getAssignmentManager().getRegionStates().getRegionsInTransition(); + assertTrue(rit.size() == 0); } finally { admin.setBalancerRunning(true, false); cluster.getMaster().setCatalogJanitorEnabled(true); t.close(); + TESTING_UTIL.deleteTable(tableName); } }
