diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestStochasticBalancerJmxMetrics.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestStochasticBalancerJmxMetrics.java index c8cb665..b22da77 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestStochasticBalancerJmxMetrics.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestStochasticBalancerJmxMetrics.java @@ -24,6 +24,7 @@ import java.util.HashSet; import java.util.Hashtable; import java.util.List; import java.util.Map; +import java.util.Random; import java.util.Set; import javax.management.MBeanAttributeInfo; @@ -82,15 +83,23 @@ public class TestStochasticBalancerJmxMetrics extends BalancerTestBase { conf.setFloat("hbase.master.balancer.stochastic.maxMovePercent", 0.75f); conf.setFloat("hbase.regions.slop", 0.0f); conf.set(CoprocessorHost.REGIONSERVER_COPROCESSOR_CONF_KEY, JMXListener.class.getName()); - for (int i = 0; i < 5; i++) { + Random rand = new Random(); + for (int i = 0; i < 10; i++) { + connectorPort += rand.nextInt(100); try { conf.setInt("regionserver.rmi.registry.port", connectorPort); UTIL.startMiniCluster(); break; } catch (Exception e) { - connectorPort++; + connectorPort += rand.nextInt(100); LOG.debug("Encountered exception when starting cluster. Trying port " + connectorPort, e); + try { + // this is to avoid "IllegalStateException: A mini-cluster is already running" + UTIL.shutdownMiniCluster(); + } catch (Exception ex) { + LOG.debug("Encountered exception shutting down cluster", ex); + } } } }