RFR(S) 8054368: nsk/jdi/VirtualMachine/exit/exit002 crash with detail tracking on (NMT2)

Zhengyu Gu zhengyu.gu at oracle.com
Wed Aug 13 19:54:14 UTC 2014


The crash is caused by debugee exiting process by calling ::exit(), 
which causes C runtime to destroy static object 
(VirtualMemoryTracker::_reserved_regions)  while threads still access it.

The solution is to replace it with pointer type, allocates the object 
during NMT initialization and deallocate it during shutdown.

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

Test:
    Ran nsk/jdi/VirtualMachine/exit/exit002 in a loop for 1+ hour on 
Solaris x64, no crash.
    Without the fix, it crashes within 5 minutes.


Thanks,

-Zhengyu



More information about the hotspot-runtime-dev mailing list