Details
-
Sub-task
-
Status: Closed
-
Blocker
-
Resolution: Fixed
-
1.1.4, 1.1.5, 1.2.0, 1.2.1, 1.2.2, 1.3.0, 1.3.1, 1.3.2, 1.3.3, 1.4.0
-
None
Description
SpillableSubpartitionView#releaseMemory() recycles its buffers twice: once asynchronously after the write operation and once in SpillableSubpartitionView#releaseMemory() after adding the write operation to the queue.
1) if SpillableSubpartitionView#releaseMemory() hits first and the buffer is recycled, the memory region may already be reused despite the pending write
2) If, for some reason (probably only in tests like SpillableSubpartitionTest#testConsumeSpillablePartitionSpilledDuringConsume()?), the buffer is retained and to be used in parallel somewhere else it may also not be available anymore or contain corrupt data.