@@ -148,20 +148,26 @@ class StaticMemoryManagerSuite extends MemoryManagerSuite {
148148 val dummyBlock = TestBlockId (" lonely water" )
149149 val (mm, ms) = makeThings(Long .MaxValue , maxStorageMem)
150150 assert(mm.acquireUnrollMemory(dummyBlock, 100L , evictedBlocks))
151+ when(ms.currentUnrollMemory).thenReturn(100L )
151152 assertEvictBlocksToFreeSpaceNotCalled(ms)
152153 assert(mm.storageMemoryUsed === 100L )
153154 mm.releaseUnrollMemory(40L )
154155 assert(mm.storageMemoryUsed === 60L )
155156 when(ms.currentUnrollMemory).thenReturn(60L )
156- assert(mm.acquireUnrollMemory(dummyBlock, 500L , evictedBlocks))
157- // `spark.storage.unrollFraction` is 0.4, so the max unroll space is 400 bytes.
158- // Since we already occupy 60 bytes, we will try to ensure only 400 - 60 = 340 bytes.
157+ assert(mm.acquireStorageMemory(dummyBlock, 800L , evictedBlocks))
159158 assertEvictBlocksToFreeSpaceNotCalled(ms)
160- assert(mm.storageMemoryUsed === 560L )
161- when(ms.currentUnrollMemory).thenReturn(560L )
159+ assert(mm.storageMemoryUsed === 860L )
160+ // `spark.storage.unrollFraction` is 0.4, so the max unroll space is 400 bytes.
161+ // Since we already occupy 60 bytes, we will try to evict only 400 - 60 = 340 bytes.
162162 assert(! mm.acquireUnrollMemory(dummyBlock, 800L , evictedBlocks))
163- assert(mm.storageMemoryUsed === 560L )
164- // We already have 560 bytes > the max unroll space of 400 bytes, so no bytes are freed
163+ assertEvictBlocksToFreeSpaceCalled(ms, 340L )
164+ assert(mm.storageMemoryUsed === 520L )
165+ // Acquire more unroll memory to exceed our "max unroll space"
166+ assert(mm.acquireUnrollMemory(dummyBlock, 440L , evictedBlocks))
167+ when(ms.currentUnrollMemory).thenReturn(500L )
168+ assert(mm.storageMemoryUsed === 960L )
169+ assert(! mm.acquireUnrollMemory(dummyBlock, 300L , evictedBlocks))
170+ // We already have 500 bytes > the max unroll space of 400 bytes, so no bytes are freed
165171 assertEvictBlocksToFreeSpaceNotCalled(ms)
166172 // Release beyond what was acquired
167173 mm.releaseUnrollMemory(maxStorageMem)
0 commit comments