diff --git a/core/src/main/scala/org/apache/spark/deploy/SparkSubmit.scala b/core/src/main/scala/org/apache/spark/deploy/SparkSubmit.scala index 38604fe93998..ea9c9bdaede7 100644 --- a/core/src/main/scala/org/apache/spark/deploy/SparkSubmit.scala +++ b/core/src/main/scala/org/apache/spark/deploy/SparkSubmit.scala @@ -352,6 +352,9 @@ object SparkSubmit extends CommandLineUtils with Logging { var localJars: String = null var localPyFiles: String = null if (deployMode == CLIENT) { + // This security manager will not need an auth secret, but set a dummy value in case + // spark.authenticate is enabled, otherwise an exception is thrown. + sparkConf.set(SecurityManager.SPARK_AUTH_SECRET_CONF, "unused") val secMgr = new SecurityManager(sparkConf) localPrimaryResource = Option(args.primaryResource).map { downloadFile(_, targetDir, sparkConf, hadoopConf, secMgr) diff --git a/core/src/main/scala/org/apache/spark/internal/Logging.scala b/core/src/main/scala/org/apache/spark/internal/Logging.scala index cea9964ea8c9..c0d709ad25f2 100644 --- a/core/src/main/scala/org/apache/spark/internal/Logging.scala +++ b/core/src/main/scala/org/apache/spark/internal/Logging.scala @@ -120,6 +120,7 @@ trait Logging { val log4j12Initialized = LogManager.getRootLogger.getAllAppenders.hasMoreElements // scalastyle:off println if (!log4j12Initialized) { + Logging.defaultSparkLog4jConfig = true val defaultLogProps = "org/apache/spark/log4j-defaults.properties" Option(Utils.getSparkClassLoader.getResource(defaultLogProps)) match { case Some(url) => @@ -164,6 +165,7 @@ trait Logging { private[spark] object Logging { @volatile private var initialized = false @volatile private var defaultRootLevel: Level = null + @volatile private var defaultSparkLog4jConfig = false val initLock = new Object() try { @@ -186,7 +188,12 @@ private[spark] object Logging { */ def uninitialize(): Unit = initLock.synchronized { if (isLog4j12()) { - LogManager.resetConfiguration() + if (defaultSparkLog4jConfig) { + defaultSparkLog4jConfig = false + LogManager.resetConfiguration() + } else { + LogManager.getRootLogger().setLevel(defaultRootLevel) + } } this.initialized = false }