From 1f7543032f84515e90d04356473ec69fb143304d Mon Sep 17 00:00:00 2001 From: Luciano Resende Date: Sun, 28 Aug 2016 18:06:59 -0700 Subject: [PATCH] [ZEPPELIN-449] Enhance log messages when intepreter is initializing Remove the "connection refused" stack trace and provide a better error message when the interpreter is not accessible, which might indicate that it is still initializing. --- .../RemoteInterpreterManagedProcess.java | 22 ++++++++++++------- .../remote/RemoteInterpreterUtils.java | 15 +++++++++++-- 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreterManagedProcess.java b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreterManagedProcess.java index eb345338569..ddab105570b 100644 --- a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreterManagedProcess.java +++ b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreterManagedProcess.java @@ -124,14 +124,20 @@ public void start() { long startTime = System.currentTimeMillis(); while (System.currentTimeMillis() - startTime < getConnectTimeout()) { - if (RemoteInterpreterUtils.checkIfRemoteEndpointAccessible("localhost", port)) { - break; - } else { - try { - Thread.sleep(500); - } catch (InterruptedException e) { - logger.error("Exception in RemoteInterpreterProcess while synchronized reference " + - "Thread.sleep", e); + try { + if (RemoteInterpreterUtils.checkIfRemoteEndpointAccessible("localhost", port)) { + break; + } else { + try { + Thread.sleep(500); + } catch (InterruptedException e) { + logger.error("Exception in RemoteInterpreterProcess while synchronized reference " + + "Thread.sleep", e); + } + } + } catch (Exception e) { + if (logger.isDebugEnabled()) { + logger.debug("Remote interpreter not yet accessible at localhost:" + port); } } } diff --git a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreterUtils.java b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreterUtils.java index a66b52ab229..2937e2d4c09 100644 --- a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreterUtils.java +++ b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreterUtils.java @@ -21,6 +21,7 @@ import org.slf4j.LoggerFactory; import java.io.IOException; +import java.net.ConnectException; import java.net.InetSocketAddress; import java.net.ServerSocket; import java.net.Socket; @@ -46,9 +47,19 @@ public static boolean checkIfRemoteEndpointAccessible(String host, int port) { discover.connect(new InetSocketAddress(host, port), 1000); discover.close(); return true; - } catch (IOException e) { + } catch (ConnectException cne) { // end point is not accessible - LOGGER.debug(e.getMessage(), e); + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("Remote endpoint '" + host + ":" + port + "' is not accessible " + + "(might be initializing): " + cne.getMessage()); + } + return false; + } catch (IOException ioe) { + // end point is not accessible + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("Remote endpoint '" + host + ":" + port + "' is not accessible " + + "(might be initializing): " + ioe.getMessage()); + } return false; } }