Spark uses a TestMemoryManager class to mock out memory manager functionality in tests, allowing test authors to exercise control over certain behaviors (e.g. to simulate OOMs).
Our tests have memory-leak detection to ensure that all allocated memory is cleaned up at the end of each test case; this helps to guard against bugs that could cause production memory leaks.
Unfortunately, however, this leak-detection logic is broken for tests which use TestMemoryManager because it does not override the getExecutionMemoryUsageForTask() method which the leak-detection mechanism needs.
- links to