Skip to content

Commit 1356cdb

Browse files
committed
Another fix to freeing pages
1 parent 709ecf2 commit 1356cdb

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

core/src/main/java/org/apache/spark/memory/MemoryConsumer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,6 @@ protected void freePage(MemoryBlock page) {
134134
} else {
135135
offHeapMemoryUsed -= page.size();
136136
}
137-
taskMemoryManager.freePage(page);
137+
taskMemoryManager.freePage(page, this);
138138
}
139139
}

core/src/main/java/org/apache/spark/memory/TaskMemoryManager.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ public MemoryBlock allocatePage(long size, MemoryConsumer consumer) {
263263
/**
264264
* Free a block of memory allocated via {@link TaskMemoryManager#allocatePage}.
265265
*/
266-
public void freePage(MemoryBlock page) {
266+
public void freePage(MemoryBlock page, MemoryConsumer consumer) {
267267
assert (page.pageNumber != -1) :
268268
"Called freePage() on memory that wasn't allocated with allocatePage()";
269269
assert(allocatedPages.get(page.pageNumber));
@@ -274,6 +274,9 @@ public void freePage(MemoryBlock page) {
274274
if (logger.isTraceEnabled()) {
275275
logger.trace("Freed page number {} ({} bytes)", page.pageNumber, page.size());
276276
}
277+
long pageSize = page.size();
278+
memoryManager.tungstenMemoryAllocator().free(page);
279+
releaseExecutionMemory(pageSize, tungstenMemoryMode, consumer);
277280
}
278281

279282
/**

0 commit comments

Comments
 (0)