Details
-
Bug
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
1.3.1, 1.4.1, 1.5.1, 1.6.0
-
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
- is cloned by
-
SPARK-27417 CLONE - ExternalSorter and ExternalAppendOnlyMap should free shuffle memory in their stop() methods
- Closed
- is related to
-
SPARK-14560 Cooperative Memory Management for Spillables
- Resolved
-
SPARK-14168 Managed Memory Leak Msg Should Only Be a Warning
- Resolved
- links to