From bb32a9c58c025d09f72be1ed58b9bde9471cf6ea Mon Sep 17 00:00:00 2001 From: maoling Date: Sun, 3 Mar 2019 20:43:07 +0800 Subject: [PATCH] HBASE-21949:Fix flaky test TestHBaseTestingUtility.testMiniZooKeeperWithMultipleClientPorts --- .../hadoop/hbase/TestHBaseTestingUtility.java | 22 ++++++++++--------- .../hadoop/hbase/HBaseZKTestingUtility.java | 3 +++ 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestHBaseTestingUtility.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestHBaseTestingUtility.java index 0ec97ef2a2..1ec59628f0 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestHBaseTestingUtility.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestHBaseTestingUtility.java @@ -311,16 +311,18 @@ public class TestHBaseTestingUtility { hbt.startMiniZKCluster(clientPortList3.length + 1, clientPortList3); try { - List clientPortListInCluster = cluster3.getClientPortList(); - - for (i = 0, j = 0; i < clientPortListInCluster.size(); i++) { - // Servers will only use valid client ports; if ports are not specified or invalid, - // the default port or a port based on default port will be used. - if (i < clientPortList3.length && clientPortList3[i] > 0) { - assertEquals(clientPortListInCluster.get(i).intValue(), clientPortList3[i]); - } else { - assertEquals(clientPortListInCluster.get(i).intValue(), defaultClientPort + j); - j++; + if (cluster3 != null) { + List clientPortListInCluster = cluster3.getClientPortList(); + + for (i = 0, j = 0; i < clientPortListInCluster.size(); i++) { + // Servers will only use valid client ports; if ports are not specified or invalid, + // the default port or a port based on default port will be used. + if (i < clientPortList3.length && clientPortList3[i] > 0) { + assertEquals(clientPortListInCluster.get(i).intValue(), clientPortList3[i]); + } else { + assertEquals(clientPortListInCluster.get(i).intValue(), defaultClientPort + j); + j++; + } } } } finally { diff --git a/hbase-zookeeper/src/test/java/org/apache/hadoop/hbase/HBaseZKTestingUtility.java b/hbase-zookeeper/src/test/java/org/apache/hadoop/hbase/HBaseZKTestingUtility.java index 527ddab259..6eba44f2b3 100644 --- a/hbase-zookeeper/src/test/java/org/apache/hadoop/hbase/HBaseZKTestingUtility.java +++ b/hbase-zookeeper/src/test/java/org/apache/hadoop/hbase/HBaseZKTestingUtility.java @@ -131,6 +131,9 @@ public class HBaseZKTestingUtility extends HBaseCommonTestingUtility { } } int clientPort = this.zkCluster.startup(dir, zooKeeperServerNum); + if (clientPort == -1) { + return null; + } this.conf.set(HConstants.ZOOKEEPER_CLIENT_PORT, Integer.toString(clientPort)); return this.zkCluster; } -- 2.19.1