diff options
-rw-r--r-- | core/src/main/scala/spark/Logging.scala | 4 | ||||
-rw-r--r-- | core/src/main/scala/spark/SparkContext.scala | 3 |
2 files changed, 7 insertions, 0 deletions
diff --git a/core/src/main/scala/spark/Logging.scala b/core/src/main/scala/spark/Logging.scala index 2d1feebbb1..c9408bbcb6 100644 --- a/core/src/main/scala/spark/Logging.scala +++ b/core/src/main/scala/spark/Logging.scala @@ -46,4 +46,8 @@ trait Logging { def logError(msg: => String, throwable: Throwable) = if (log.isErrorEnabled) log.error(msg, throwable) + + // Method for ensuring that logging is initialized, to avoid having multiple + // threads do it concurrently (as SLF4J initialization is not thread safe). + def initLogging() { log } } diff --git a/core/src/main/scala/spark/SparkContext.scala b/core/src/main/scala/spark/SparkContext.scala index 7aa1eb0a71..2f2ff0e801 100644 --- a/core/src/main/scala/spark/SparkContext.scala +++ b/core/src/main/scala/spark/SparkContext.scala @@ -15,6 +15,9 @@ class SparkContext( val sparkHome: String = null, val jars: Seq[String] = Nil) extends Logging { + // Ensure logging is initialized before we spawn any threads + initLogging() + // Set Spark master host and port system properties if (System.getProperty("spark.master.host") == null) System.setProperty("spark.master.host", Utils.localHostName) |