diff --git a/spark-client/src/main/java/org/apache/hive/spark/client/SparkClientImpl.java b/spark-client/src/main/java/org/apache/hive/spark/client/SparkClientImpl.java index dfe263f..1c6c529 100644 --- a/spark-client/src/main/java/org/apache/hive/spark/client/SparkClientImpl.java +++ b/spark-client/src/main/java/org/apache/hive/spark/client/SparkClientImpl.java @@ -48,6 +48,7 @@ import java.util.Properties; import java.util.UUID; import java.util.concurrent.Future; +import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import java.util.concurrent.atomic.AtomicInteger; @@ -101,7 +102,8 @@ try { // The RPC server will take care of timeouts here. - this.driverRpc = rpcServer.registerClient(clientId, secret, protocol).get(); + long timeout = rpcServer.getConnectTimeoutMs(); + this.driverRpc = rpcServer.registerClient(clientId, secret, protocol).get(timeout, TimeUnit.MILLISECONDS); } catch (Throwable e) { if (e.getCause() instanceof TimeoutException) { LOG.error("Timed out waiting for client to connect.\nPossible reasons include network " + diff --git a/spark-client/src/main/java/org/apache/hive/spark/client/rpc/RpcServer.java b/spark-client/src/main/java/org/apache/hive/spark/client/rpc/RpcServer.java index 68ee627..a468325 100644 --- a/spark-client/src/main/java/org/apache/hive/spark/client/rpc/RpcServer.java +++ b/spark-client/src/main/java/org/apache/hive/spark/client/rpc/RpcServer.java @@ -206,6 +206,10 @@ public int getPort() { return port; } + public long getConnectTimeoutMs() { + return RpcServer.this.config.getServerConnectTimeoutMs(); + } + @Override public void close() { try {