Repository: spark
Updated Branches:
  refs/heads/branch-1.6 5a0052839 -> 773366818


[SPARK-12701][CORE] FileAppender should use join to ensure writing thread 
completion

Changed Logging FileAppender to use join in `awaitTermination` to ensure that 
thread is properly finished before returning.

Author: Bryan Cutler <cutl...@gmail.com>

Closes #10654 from BryanCutler/fileAppender-join-thread-SPARK-12701.

(cherry picked from commit ea104b8f1ce8aa109d1b16b696a61a47df6283b2)
Signed-off-by: Sean Owen <so...@cloudera.com>


Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/77336681
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/77336681
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/77336681

Branch: refs/heads/branch-1.6
Commit: 773366818bbdd479fcb59b6fb7fccf28da13a303
Parents: 5a00528
Author: Bryan Cutler <cutl...@gmail.com>
Authored: Fri Jan 8 11:08:45 2016 -0800
Committer: Sean Owen <so...@cloudera.com>
Committed: Fri Jan 15 20:11:31 2016 +0000

----------------------------------------------------------------------
 .../org/apache/spark/util/logging/FileAppender.scala     | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/spark/blob/77336681/core/src/main/scala/org/apache/spark/util/logging/FileAppender.scala
----------------------------------------------------------------------
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 9ddd02f..86bbaa2 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
@@ -29,7 +29,6 @@ private[spark] class FileAppender(inputStream: InputStream, 
file: File, bufferSi
   extends Logging {
   @volatile private var outputStream: FileOutputStream = null
   @volatile private var markedForStop = false     // has the appender been 
asked to stopped
-  @volatile private var stopped = false           // has the appender stopped
 
   // Thread that reads the input stream and writes to file
   private val writingThread = new Thread("File appending thread for " + file) {
@@ -47,11 +46,7 @@ private[spark] class FileAppender(inputStream: InputStream, 
file: File, bufferSi
    * or because of any error in appending
    */
   def awaitTermination() {
-    synchronized {
-      if (!stopped) {
-        wait()
-      }
-    }
+    writingThread.join()
   }
 
   /** Stop the appender */
@@ -81,10 +76,6 @@ private[spark] class FileAppender(inputStream: InputStream, 
file: File, bufferSi
         }
       } {
         closeFile()
-        synchronized {
-          stopped = true
-          notifyAll()
-        }
       }
     } catch {
       case e: Exception =>


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org
For additional commands, e-mail: commits-h...@spark.apache.org

Reply via email to