From 9d85eedf26fe6c0f8c98c6f90c8e07de00dc4e8e Mon Sep 17 00:00:00 2001 From: Andrew Ash Date: Sun, 8 Jun 2014 23:59:53 -0700 Subject: [PATCH 1/3] SPARK-1902 Silence stacktrace from logs when doing port failover to port n+1 --- conf/log4j.properties.template | 2 +- .../main/resources/org/apache/spark/log4j-defaults.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/log4j.properties.template b/conf/log4j.properties.template index f7f853559468..761699d045a3 100644 --- a/conf/log4j.properties.template +++ b/conf/log4j.properties.template @@ -6,6 +6,6 @@ log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n # Settings to quiet third party logs that are too verbose -log4j.logger.org.eclipse.jetty=WARN +log4j.logger.org.eclipse.jetty.util.component.AbstractLifeCycle=ERROR log4j.logger.org.apache.spark.repl.SparkIMain$exprTyper=INFO log4j.logger.org.apache.spark.repl.SparkILoop$SparkILoopInterpreter=INFO diff --git a/core/src/main/resources/org/apache/spark/log4j-defaults.properties b/core/src/main/resources/org/apache/spark/log4j-defaults.properties index f7f853559468..761699d045a3 100644 --- a/core/src/main/resources/org/apache/spark/log4j-defaults.properties +++ b/core/src/main/resources/org/apache/spark/log4j-defaults.properties @@ -6,6 +6,6 @@ log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n # Settings to quiet third party logs that are too verbose -log4j.logger.org.eclipse.jetty=WARN +log4j.logger.org.eclipse.jetty.util.component.AbstractLifeCycle=ERROR log4j.logger.org.apache.spark.repl.SparkIMain$exprTyper=INFO log4j.logger.org.apache.spark.repl.SparkILoop$SparkILoopInterpreter=INFO From 1e2866b82ed7f7e7251a6626950bb1dbb3a460be Mon Sep 17 00:00:00 2001 From: Andrew Ash Date: Thu, 19 Jun 2014 02:02:13 -0400 Subject: [PATCH 2/3] Address CR comments 1. We should log the new port that we are going to try on instead of just saying "Trying again" 2. The first line should be logged at WARN level, not Info. 3. If the exception message contains "Address already in use" we can just log the exception message at WARN. 4. If the exception is some other message, we should log it at ERROR, and pass the exception to logError so that the entire stack trace is printed. --- .../main/scala/org/apache/spark/ui/JettyUtils.scala | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/core/src/main/scala/org/apache/spark/ui/JettyUtils.scala b/core/src/main/scala/org/apache/spark/ui/JettyUtils.scala index b3ac2320f343..0e65982de648 100644 --- a/core/src/main/scala/org/apache/spark/ui/JettyUtils.scala +++ b/core/src/main/scala/org/apache/spark/ui/JettyUtils.scala @@ -194,11 +194,16 @@ private[spark] object JettyUtils extends Logging { case s: Success[_] => (server, server.getConnectors.head.getLocalPort) case f: Failure[_] => + val nextPort = (currentPort + 1) % 65536 server.stop() pool.stop() - logInfo("Failed to create UI at port, %s. Trying again.".format(currentPort)) - logInfo("Error was: " + f.toString) - connect((currentPort + 1) % 65536) + val msg = s"Failed to create UI on port :$currentPort. Trying again on port :$nextPort" + if(f.toString.contains("Address already in use")) { + logWarning(s"$msg - $f") + } else { + logError(msg, f.exception) + } + connect(nextPort) } } From 0dd02f75031be0c92b8be18872b205a3a1b5aef4 Mon Sep 17 00:00:00 2001 From: Andrew Ash Date: Thu, 19 Jun 2014 02:32:18 -0400 Subject: [PATCH 3/3] Leave old org.eclipse.jetty silencing in place --- conf/log4j.properties.template | 1 + .../main/resources/org/apache/spark/log4j-defaults.properties | 1 + 2 files changed, 2 insertions(+) diff --git a/conf/log4j.properties.template b/conf/log4j.properties.template index 761699d045a3..89eec7d4b7f6 100644 --- a/conf/log4j.properties.template +++ b/conf/log4j.properties.template @@ -6,6 +6,7 @@ log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n # Settings to quiet third party logs that are too verbose +log4j.logger.org.eclipse.jetty=WARN log4j.logger.org.eclipse.jetty.util.component.AbstractLifeCycle=ERROR log4j.logger.org.apache.spark.repl.SparkIMain$exprTyper=INFO log4j.logger.org.apache.spark.repl.SparkILoop$SparkILoopInterpreter=INFO diff --git a/core/src/main/resources/org/apache/spark/log4j-defaults.properties b/core/src/main/resources/org/apache/spark/log4j-defaults.properties index 761699d045a3..89eec7d4b7f6 100644 --- a/core/src/main/resources/org/apache/spark/log4j-defaults.properties +++ b/core/src/main/resources/org/apache/spark/log4j-defaults.properties @@ -6,6 +6,7 @@ log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n # Settings to quiet third party logs that are too verbose +log4j.logger.org.eclipse.jetty=WARN log4j.logger.org.eclipse.jetty.util.component.AbstractLifeCycle=ERROR log4j.logger.org.apache.spark.repl.SparkIMain$exprTyper=INFO log4j.logger.org.apache.spark.repl.SparkILoop$SparkILoopInterpreter=INFO