From 91268aa55d5d36d70c9e64f4ab9c1939fb2e0033 Mon Sep 17 00:00:00 2001 From: Dima Spivak Date: Wed, 8 Oct 2014 15:34:44 -0700 Subject: [PATCH 1/2] HBASE-12181 Some tests create a table and try to use it before regions are assigned * Adds HBaseTestingUtility#waitUntilAllRegionsAssigned after createTable * Confirms that lists of regions have at least one element before using * Minor nit refactoring of #testSplitHooksBeforeAndAfterPONR --- .../TestSplitTransactionOnCluster.java | 25 +++++++++++++++------- 1 file changed, 17 insertions(+), 8 deletions(-) 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 0708b79..89870ca 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 @@ -1032,19 +1032,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 firstTableregions = cluster.getRegions(firstTable); + TESTING_UTIL.waitUntilAllRegionsAssigned(secondTable); + + List firstTableRegions = cluster.getRegions(firstTable); List 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; @@ -1055,12 +1064,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 { -- 1.9.3 (Apple Git-50) From 98b08a828177f58d13df85f80f946fd028e0cef7 Mon Sep 17 00:00:00 2001 From: Dima Spivak Date: Fri, 10 Oct 2014 15:24:59 -0700 Subject: [PATCH 2/2] HBASE-12229 NullPointerException in SnapshotTestingUtils --- .../test/java/org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.java | 1 + 1 file changed, 1 insertion(+) diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.java index c147fd0..61bd4fd 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.java @@ -643,6 +643,7 @@ public class SnapshotTestingUtils { } byte[][] splitKeys = getSplitKeys(); util.getHBaseAdmin().createTable(htd, splitKeys); + util.waitUntilAllRegionsAssigned(tableName); waitForTableToBeOnline(util, tableName); assertEquals((splitKeys.length + 1) * regionReplication, util.getHBaseAdmin().getTableRegions(tableName).size()); -- 1.9.3 (Apple Git-50)