From d6c94da3e67b01855d4dc5d42c9068c77cba7453 Mon Sep 17 00:00:00 2001 From: jerryshao Date: Mon, 13 Apr 2015 12:52:58 +0800 Subject: [PATCH] Fix dead lock --- .../org/apache/spark/util/collection/TieredDiskMerger.scala | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/core/src/main/scala/org/apache/spark/util/collection/TieredDiskMerger.scala b/core/src/main/scala/org/apache/spark/util/collection/TieredDiskMerger.scala index 1b33042abb92c..d55413a8d31be 100644 --- a/core/src/main/scala/org/apache/spark/util/collection/TieredDiskMerger.scala +++ b/core/src/main/scala/org/apache/spark/util/collection/TieredDiskMerger.scala @@ -93,8 +93,8 @@ private[spark] class TieredDiskMerger[K, C]( * Notify the merger that no more on disk blocks will be registered. */ def doneRegisteringOnDiskBlocks(): Unit = { - doneRegistering = true mergeReadyMonitor.synchronized { + doneRegistering = true mergeReadyMonitor.notify() } } @@ -175,7 +175,9 @@ private[spark] class TieredDiskMerger[K, C]( while (!doneRegistering || onDiskBlocks.size() > maxMergeFactor) { while (!shouldMergeNow()) { mergeReadyMonitor.synchronized { - mergeReadyMonitor.wait() + if (!shouldMergeNow()) { + mergeReadyMonitor.wait() + } } }