Uploaded image for project: 'Spark'
  1. Spark
  2. SPARK-27417

CLONE - ExternalSorter and ExternalAppendOnlyMap should free shuffle memory in their stop() methods

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 1.3.1, 1.4.1, 1.5.1, 1.6.0
    • Fix Version/s: 1.6.0
    • Component/s: Spark Core
    • Labels:
      None

      Description

      I discovered multiple leaks of shuffle memory while working on my memory manager consolidation patch, which added the ability to do strict memory leak detection for the bookkeeping that used to be performed by the ShuffleMemoryManager. This uncovered a handful of places where tasks can acquire execution/shuffle memory but never release it, starving themselves of memory.

      Problems that I found:

      • ExternalSorter.stop() should release the sorter's shuffle/execution memory.
      • BlockStoreShuffleReader should call ExternalSorter.stop() using a CompletionIterator.
      • ExternalAppendOnlyMap exposes no equivalent of stop() for freeing its resources.

        Attachments

        Issue Links

          Activity

            People

            • Assignee:
              joshrosen Josh Rosen
              Reporter:
              yangpengyu yangpengyu

              Dates

              • Created:
                Updated:
                Resolved:

                Issue deployment