RFR(S) 8054546: NMT2 leaks memory

Zhengyu Gu zhengyu.gu at oracle.com
Wed Aug 13 15:34:40 UTC 2014


New native memory tracking implementation tries to baseline memory into 
an arena. Unfortunately, the class "ReservedMemoryRegion" contains 
"CommittedMemoryRegion" which is C-heap object. When the baseline is 
discarded, reset arena memory does not invoke ReservedMemoryRegion's 
dtor, as the result, embedded committed memory regions are leaked.

The solution is to move memory baseline back to C-heap memory, and 
ensure ReservedMemoryRegion's dtor does get invoked.

Bug:https://bugs.openjdk.java.net/browse/JDK-8054546 
<https://bugs.openjdk.java.net/browse/JDK-8054546>
Webrev: http://cr.openjdk.java.net/~zgu/8054546/webrev.00/ 
<http://cr.openjdk.java.net/%7Ezgu/8054546/webrev.00/>

Test:
   Ran SwingSet2.jar with "-XX:NativeMemoryTracking=detail". Used jcmd 
to baseline memory and do detail comparison. No memory leak was found.


Thanks,

-Zhengyu


More information about the hotspot-runtime-dev mailing list