Index: hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java =================================================================== --- hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java (revision 1481058) +++ hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java (working copy) @@ -25,9 +25,11 @@ import java.io.File; import java.io.IOException; +import java.io.InterruptedIOException; import java.io.OutputStream; import java.lang.reflect.Field; import java.lang.reflect.Modifier; +import java.net.BindException; import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socket; @@ -519,8 +521,29 @@ public MiniDFSCluster startMiniDFSClusterForTestHLog(int namenodePort) throws IOException { createDirsAndSetProperties(); - dfsCluster = new MiniDFSCluster(namenodePort, conf, 5, false, true, true, null, - null, null, null); + Exception ex = null; + for (int i = 0; i < 30; i++) { + try { + Thread.sleep(500); + } catch (InterruptedException ie) { + InterruptedIOException iie = new InterruptedIOException(); + iie.initCause(ie); + throw iie; + } + try { + dfsCluster = new MiniDFSCluster(namenodePort, conf, 5, false, true, true, null, + null, null, null); + ex = null; + break; + } catch (BindException be) { + ex = be; + LOG.debug("address in use, retry", be); + } + } + if (ex != null) { + throw new IOException("MiniDFSCluster didn't start: ", ex); + } + return dfsCluster; } Index: hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestHLog.java =================================================================== --- hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestHLog.java (revision 1481058) +++ hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestHLog.java (working copy) @@ -22,9 +22,9 @@ import java.io.IOException; import java.lang.reflect.Method; -import java.util.TreeMap; import java.util.List; import java.util.Map; +import java.util.TreeMap; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -35,13 +35,20 @@ import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; -import org.apache.hadoop.hbase.*; +import org.apache.hadoop.hbase.Coprocessor; +import org.apache.hadoop.hbase.HBaseTestingUtility; +import org.apache.hadoop.hbase.HColumnDescriptor; +import org.apache.hadoop.hbase.HConstants; +import org.apache.hadoop.hbase.HRegionInfo; +import org.apache.hadoop.hbase.HTableDescriptor; +import org.apache.hadoop.hbase.KeyValue; +import org.apache.hadoop.hbase.LargeTests; +import org.apache.hadoop.hbase.ServerName; +import org.apache.hadoop.hbase.coprocessor.CoprocessorHost; +import org.apache.hadoop.hbase.coprocessor.SampleRegionWALObserver; import org.apache.hadoop.hbase.regionserver.wal.HLog.Reader; import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.util.FSUtils; -import org.apache.hadoop.hbase.Coprocessor; -import org.apache.hadoop.hbase.coprocessor.CoprocessorHost; -import org.apache.hadoop.hbase.coprocessor.SampleRegionWALObserver; import org.apache.hadoop.hdfs.DFSClient; import org.apache.hadoop.hdfs.DistributedFileSystem; import org.apache.hadoop.hdfs.MiniDFSCluster; @@ -431,7 +438,7 @@ Thread.sleep(2000); LOG.info("Waiting a few seconds before re-starting HDFS"); - Thread.sleep(5000); + Thread.sleep(3000); cluster = TEST_UTIL.startMiniDFSClusterForTestHLog(namenodePort); cluster.waitActive(); fs = cluster.getFileSystem();