Index: src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java =================================================================== --- src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java (revision 1425549) +++ src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java (working copy) @@ -1702,17 +1702,21 @@ throws IOException { boolean startedServer = ensureSomeRegionServersAvailable(num); + int nonStoppedServers = 0; for (JVMClusterUtil.RegionServerThread rst : getMiniHBaseCluster().getRegionServerThreads()) { HRegionServer hrs = rst.getRegionServer(); if (hrs.isStopping() || hrs.isStopped()) { LOG.info("A region server is stopped or stopping:"+hrs); - LOG.info("Started new server=" + getMiniHBaseCluster().startRegionServer()); - startedServer = true; + } else { + nonStoppedServers++; } } - + for (int i=nonStoppedServers; i regions = cluster.getRegions(tableName); + List regions = null; + for (int i=0; i<100; i++) { + regions = cluster.getRegions(tableName); + if (regions.size() > 0) break; + Thread.sleep(100); + } int regionServerIndex = cluster.getServerWith(regions.get(0).getRegionName()); HRegionServer regionServer = cluster.getRegionServer(regionServerIndex); SplitTransaction st = null; @@ -582,6 +586,8 @@ } catch (IOException e) { String node = ZKAssign.getNodeName(regionServer.getZooKeeper(), regions.get(0) .getRegionInfo().getEncodedName()); + // make sure the client is uptodate + regionServer.getZooKeeper().sync(node); if (nodeCreated) { assertFalse(ZKUtil.checkExists(regionServer.getZooKeeper(), node) == -1); } else {