diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java index 5eb47b0d643..5e4f893ef9e 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java @@ -2164,45 +2164,29 @@ public class HBaseTestingUtility extends HBaseCommonTestingUtility { * @param countOfRegions How many regions in .META. * @throws IOException */ - public void waitUntilAllRegionsAssigned(final byte[] tableName, final int countOfRegions) + public void waitUntilAllRegionsAssigned(final int countOfRegions) throws IOException { - int retries = 30; // We may wait up to 30 seconds - int rows = 0; HTable meta = new HTable(getConfiguration(), HConstants.META_TABLE_NAME); - try { - do { - Scan scan = new Scan(); - scan.addColumn(HConstants.CATALOG_FAMILY, HConstants.REGIONINFO_QUALIFIER); - scan.addColumn(HConstants.CATALOG_FAMILY, HConstants.SERVER_QUALIFIER); - ResultScanner s = meta.getScanner(scan); - try { - for (Result r = null; (r = s.next()) != null;) { - byte[] b = r.getValue(HConstants.CATALOG_FAMILY, HConstants.REGIONINFO_QUALIFIER); - HRegionInfo hri = HRegionInfo.parseFromOrNull(b); - if (hri != null && Bytes.equals(hri.getTableName(), tableName)) { - b = r.getValue(HConstants.CATALOG_FAMILY, HConstants.SERVER_QUALIFIER); - if (b == null || b.length <= 0) { - continue; - } - rows++; - } - } - } finally { - s.close(); - } - // If I get to here and all rows have a Server, then all have been assigned. - if (rows == countOfRegions) { + while (true) { + int rows = 0; + Scan scan = new Scan(); + scan.addColumn(HConstants.CATALOG_FAMILY, HConstants.SERVER_QUALIFIER); + ResultScanner s = meta.getScanner(scan); + for (Result r = null; (r = s.next()) != null;) { + byte [] b = + r.getValue(HConstants.CATALOG_FAMILY, HConstants.SERVER_QUALIFIER); + if (b == null || b.length <= 0) { break; } - LOG.info("Found=" + rows); - Threads.sleep(1000); - } while (--retries > 0); - } finally { - meta.close(); - } - if (rows != countOfRegions) { - throw new IOException("Timed out waiting for " + countOfRegions + " regions of " + - Bytes.toStringBinary(tableName) + " to come online"); + rows++; + } + s.close(); + // If I get to here and all rows have a Server, then all have been assigned. + if (rows == countOfRegions) { + break; + } + LOG.info("Found=" + rows); + Threads.sleep(200); } } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestHTableMultiplexer.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestHTableMultiplexer.java index a801a02de28..c2deb56c37a 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestHTableMultiplexer.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestHTableMultiplexer.java @@ -77,7 +77,7 @@ public class TestHTableMultiplexer { HTable ht = TEST_UTIL.createTable(TABLE, new byte[][] { FAMILY }, VERSION, Bytes.toBytes("aaaaa"), Bytes.toBytes("zzzzz"), NUM_REGIONS); - TEST_UTIL.waitUntilAllRegionsAssigned(TABLE, NUM_REGIONS); + TEST_UTIL.waitUntilAllRegionsAssigned(NUM_REGIONS); byte[][] startRows = ht.getStartKeys(); byte[][] endRows = ht.getEndKeys(); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestCoprocessorEndpoint.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestCoprocessorEndpoint.java index 481029b3bf0..d4f051e403d 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestCoprocessorEndpoint.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestCoprocessorEndpoint.java @@ -91,7 +91,7 @@ public class TestCoprocessorEndpoint { HTableDescriptor desc = new HTableDescriptor(TEST_TABLE); desc.addFamily(new HColumnDescriptor(TEST_FAMILY)); admin.createTable(desc, new byte[][]{ROWS[rowSeperator1], ROWS[rowSeperator2]}); - util.waitUntilAllRegionsAssigned(TEST_TABLE, 3); + util.waitUntilAllRegionsAssigned(3); admin.close(); HTable table = new HTable(conf, TEST_TABLE); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java index d12e5926537..4673ba1c805 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java @@ -1110,7 +1110,7 @@ public class TestMasterObserver { try { int countOfRegions = UTIL.createMultiRegions(table, TEST_FAMILY); - UTIL.waitUntilAllRegionsAssigned(TEST_TABLE, countOfRegions); + UTIL.waitUntilAllRegionsAssigned(countOfRegions); NavigableMap regions = table.getRegionLocations(); Map.Entry firstGoodPair = null; diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionServerCoprocessorExceptionWithAbort.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionServerCoprocessorExceptionWithAbort.java index 16da09a7fd8..653d45d8e77 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionServerCoprocessorExceptionWithAbort.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionServerCoprocessorExceptionWithAbort.java @@ -75,7 +75,7 @@ public class TestRegionServerCoprocessorExceptionWithAbort { byte[] TEST_FAMILY = Bytes.toBytes("aaa"); HTable table = TEST_UTIL.createTable(TEST_TABLE, TEST_FAMILY); - TEST_UTIL.waitUntilAllRegionsAssigned(TEST_TABLE, TEST_UTIL.createMultiRegions(table, TEST_FAMILY)); + TEST_UTIL.waitUntilAllRegionsAssigned(TEST_UTIL.createMultiRegions(table, TEST_FAMILY)); // Note which regionServer will abort (after put is attempted). final HRegionServer regionServer = TEST_UTIL.getRSForFirstRegionInTable(TEST_TABLE); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionServerCoprocessorExceptionWithRemove.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionServerCoprocessorExceptionWithRemove.java index 172c28a5235..0534d3ab44d 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionServerCoprocessorExceptionWithRemove.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionServerCoprocessorExceptionWithRemove.java @@ -91,7 +91,7 @@ public class TestRegionServerCoprocessorExceptionWithRemove { byte[] TEST_FAMILY = Bytes.toBytes("aaa"); HTable table = TEST_UTIL.createTable(TEST_TABLE, TEST_FAMILY); - TEST_UTIL.waitUntilAllRegionsAssigned(TEST_TABLE, + TEST_UTIL.waitUntilAllRegionsAssigned( TEST_UTIL.createMultiRegions(table, TEST_FAMILY)); // Note which regionServer that should survive the buggy coprocessor's // prePut(). diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterTransitions.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterTransitions.java index 90620697e5c..4b25ae784a2 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterTransitions.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterTransitions.java @@ -59,12 +59,11 @@ public class TestMasterTransitions { @BeforeClass public static void beforeAllTests() throws Exception { TEST_UTIL.getConfiguration().setBoolean("dfs.support.append", true); TEST_UTIL.startMiniCluster(2); - byte[] tableName = Bytes.toBytes(TABLENAME); // Create a table of three families. This will assign a region. - TEST_UTIL.createTable(tableName, FAMILIES); + TEST_UTIL.createTable(Bytes.toBytes(TABLENAME), FAMILIES); HTable t = new HTable(TEST_UTIL.getConfiguration(), TABLENAME); int countOfRegions = TEST_UTIL.createMultiRegions(t, getTestFamily()); - TEST_UTIL.waitUntilAllRegionsAssigned(tableName, countOfRegions); + TEST_UTIL.waitUntilAllRegionsAssigned(countOfRegions); addToEachStartKey(countOfRegions); t.close(); } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestHLogFiltering.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestHLogFiltering.java index c170146d524..3c06fab5a78 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestHLogFiltering.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestHLogFiltering.java @@ -102,7 +102,7 @@ public class TestHLogFiltering { table.flushCommits(); } } - TEST_UTIL.waitUntilAllRegionsAssigned(TABLE_NAME, NUM_RS); + TEST_UTIL.waitUntilAllRegionsAssigned(NUM_RS); } @Test diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.java index 414c18b36f8..31c5515f090 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.java @@ -141,7 +141,7 @@ public class TestMiniClusterLoadSequential { protected void createPreSplitLoadTestTable(HTableDescriptor htd, HColumnDescriptor hcd) throws IOException { int numRegions = HBaseTestingUtility.createPreSplitLoadTestTable(conf, htd, hcd); - TEST_UTIL.waitUntilAllRegionsAssigned(htd.getName(), numRegions); + TEST_UTIL.waitUntilAllRegionsAssigned(numRegions); } protected void prepareForLoadTest() throws IOException {