Github user advancedxy commented on the issue: https://github.com/apache/spark/pull/21369 > @advancedxy , using jvisualvm+heap dump I could see that the second introduced test case ("drop all references to the underlying map once the iterator is exhausted") eliminated all references to the underlying map: heap contained one instance of SizeTrackingAppendOnlyMap, but all references to it where unreachable, hence it was due to be evicted. found one instance of CompletionIterator (actually anonymous class deriving it) which had references to the SpillableIterator, direct ref as member 'sub' and another one via member completionFunction$1. the SpillableIterator had a single ref to the ExternalAppendOnlyMap which already had its currentMap field already nullified. Thanks. cc @cloud-fan for final review
--- --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org