diff --git a/core/src/main/scala/org/apache/spark/deploy/worker/ExecutorRunner.scala b/core/src/main/scala/org/apache/spark/deploy/worker/ExecutorRunner.scala index d21904dd16ea7..92c4cd52184ad 100644 --- a/core/src/main/scala/org/apache/spark/deploy/worker/ExecutorRunner.scala +++ b/core/src/main/scala/org/apache/spark/deploy/worker/ExecutorRunner.scala @@ -102,9 +102,11 @@ private[deploy] class ExecutorRunner( logInfo("Killing process!") if (stdoutAppender != null) { stdoutAppender.stop() + stdoutAppender.awaitTermination() } if (stderrAppender != null) { stderrAppender.stop() + stderrAppender.awaitTermination() } exitCode = Utils.terminateProcess(process, EXECUTOR_TERMINATE_TIMEOUT_MS) if (exitCode.isEmpty) { diff --git a/core/src/main/scala/org/apache/spark/util/logging/FileAppender.scala b/core/src/main/scala/org/apache/spark/util/logging/FileAppender.scala index 2fec1ff832c0a..6b285c972291b 100644 --- a/core/src/main/scala/org/apache/spark/util/logging/FileAppender.scala +++ b/core/src/main/scala/org/apache/spark/util/logging/FileAppender.scala @@ -83,6 +83,10 @@ private[spark] class FileAppender( } { try { if (closeStreams) { + val lastBuf = inputStream.readAllBytes() + if (lastBuf.nonEmpty) { + appendToFile(lastBuf, lastBuf.length) + } inputStream.close() } } finally {