Repository: hbase Updated Branches: refs/heads/master 1636afb0a -> 652b81ab1
HBASE-12181 Some tests create a table and try to use it before regions get assigned (Dima Spivak) Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/652b81ab Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/652b81ab Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/652b81ab Branch: refs/heads/master Commit: 652b81ab1ea178dc5ea4d2b4a7675f69decad430 Parents: 1636afb Author: stack <[email protected]> Authored: Wed Oct 8 17:23:21 2014 -0700 Committer: stack <[email protected]> Committed: Wed Oct 8 17:24:09 2014 -0700 ---------------------------------------------------------------------- .../TestSplitTransactionOnCluster.java | 25 +++++++++++++------- 1 file changed, 17 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/652b81ab/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 cde1c6f..29073ed 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 @@ -883,19 +883,28 @@ public class TestSplitTransactionOnCluster { public void testSplitHooksBeforeAndAfterPONR() throws Exception { TableName firstTable = TableName.valueOf("testSplitHooksBeforeAndAfterPONR_1"); TableName secondTable = TableName.valueOf("testSplitHooksBeforeAndAfterPONR_2"); + HColumnDescriptor hcd = new HColumnDescriptor("cf"); + HTableDescriptor desc = new HTableDescriptor(firstTable); desc.addCoprocessor(MockedRegionObserver.class.getName()); - HColumnDescriptor hcd = new HColumnDescriptor("cf"); desc.addFamily(hcd); admin.createTable(desc); + TESTING_UTIL.waitUntilAllRegionsAssigned(firstTable); + desc = new HTableDescriptor(secondTable); - hcd = new HColumnDescriptor("cf"); desc.addFamily(hcd); admin.createTable(desc); - List<HRegion> firstTableregions = cluster.getRegions(firstTable); + TESTING_UTIL.waitUntilAllRegionsAssigned(secondTable); + + List<HRegion> firstTableRegions = cluster.getRegions(firstTable); List<HRegion> secondTableRegions = cluster.getRegions(secondTable); + + // Check that both tables actually have regions. + if (firstTableRegions.size() == 0 || secondTableRegions.size() == 0) { + fail("Each table should have at least one region."); + } ServerName serverName = - cluster.getServerHoldingRegion(firstTableregions.get(0).getRegionName()); + cluster.getServerHoldingRegion(firstTableRegions.get(0).getRegionName()); admin.move(secondTableRegions.get(0).getRegionInfo().getEncodedNameAsBytes(), Bytes.toBytes(serverName.getServerName())); Table table1 = null; @@ -906,12 +915,12 @@ public class TestSplitTransactionOnCluster { insertData(firstTable, admin, table1); insertData(secondTable, admin, table2); admin.split(firstTable, "row2".getBytes()); - firstTableregions = cluster.getRegions(firstTable); - while (firstTableregions.size() != 2) { + firstTableRegions = cluster.getRegions(firstTable); + while (firstTableRegions.size() != 2) { Thread.sleep(1000); - firstTableregions = cluster.getRegions(firstTable); + firstTableRegions = cluster.getRegions(firstTable); } - assertEquals("Number of regions after split should be 2.", 2, firstTableregions.size()); + assertEquals("Number of regions after split should be 2.", 2, firstTableRegions.size()); secondTableRegions = cluster.getRegions(secondTable); assertEquals("Number of regions after split should be 2.", 2, secondTableRegions.size()); } finally {
