commit cbc120e0eeab11c78ac86cdb7335e29794360e66 Author: Sahil Takiar Date: Fri Jun 1 08:15:27 2018 -0500 HIVE-19759: Flaky test: TestRpc#testServerPort diff --git a/spark-client/src/test/java/org/apache/hive/spark/client/rpc/TestRpc.java b/spark-client/src/test/java/org/apache/hive/spark/client/rpc/TestRpc.java index 5653e4d0c4..88b65338ba 100644 --- a/spark-client/src/test/java/org/apache/hive/spark/client/rpc/TestRpc.java +++ b/spark-client/src/test/java/org/apache/hive/spark/client/rpc/TestRpc.java @@ -188,9 +188,20 @@ public void testServerPort() throws Exception { IOUtils.closeQuietly(server1); int expectedPort = 65535; - config.put(HiveConf.ConfVars.SPARK_RPC_SERVER_PORT.varname, String.valueOf(expectedPort)); - RpcServer server2 = new RpcServer(config); - assertTrue("Port should match configured one: " + server2.getPort(), server2.getPort() == expectedPort); + RpcServer server2 = null; + for (int i = 0; i < 10; i++) { + try { + config.put(HiveConf.ConfVars.SPARK_RPC_SERVER_PORT.varname, String.valueOf(expectedPort)); + server2 = new RpcServer(config); + break; + } catch (Exception e) { + LOG.debug("Error while connecting to port " + expectedPort + " retrying: " + e.getMessage()); + expectedPort++; + } + } + + assertNotNull("Unable to create RpcServer with any attempted port", server2); + assertEquals("Port should match configured one: " + server2.getPort(), expectedPort, server2.getPort()); IOUtils.closeQuietly(server2); config.put(HiveConf.ConfVars.SPARK_RPC_SERVER_PORT.varname, "49552-49222,49223,49224-49333"); @@ -205,9 +216,19 @@ public void testServerPort() throws Exception { // Retry logic expectedPort = 65535; - config.put(HiveConf.ConfVars.SPARK_RPC_SERVER_PORT.varname, String.valueOf(expectedPort) + ",21-23"); - RpcServer server3 = new RpcServer(config); - assertTrue("Port should match configured one:" + server3.getPort(), server3.getPort() == expectedPort); + RpcServer server3 = null; + for (int i = 0; i < 10; i++) { + try { + config.put(HiveConf.ConfVars.SPARK_RPC_SERVER_PORT.varname, String.valueOf(expectedPort) + ",21-23"); + server3 = new RpcServer(config); + break; + } catch (Exception e) { + LOG.debug("Error while connecting to port " + expectedPort + " retrying"); + expectedPort++; + } + } + assertNotNull("Unable to create RpcServer with any attempted port", server3); + assertEquals("Port should match configured one:" + server3.getPort(), expectedPort, server3.getPort()); IOUtils.closeQuietly(server3); }