Code review request: 8002273 NMT to report JNI memory leaks when -Xcheck:jni is on (original) (raw)

David Holmes david.holmes at oracle.com
Thu Nov 8 20:06:19 PST 2012


Hi Zhengyu,

On 9/11/2012 3:23 AM, Zhengyu Gu wrote:

This fix is related to JDK-8001743: Overlapped thread stacks. The cause of 8001743 is that, an attached JNI thread exited without detaching the thread, so JVM will leak a JavaThread object that attached to the JNI thread.

The patch allows NMT to report such case when -Xcheck:jni VM option is specified. http://cr.openjdk.java.net/~zgu/8002273/webrev.00/

I'm a little unclear who is doing the checking here. Is it the case that a regular thread while updating its NMT records, detects that there is an overlap with an existing region, and infers from that that the other region must belong to a thread that failed to detach?

This comment doesn't read clearly to me, and we don't generally include references to bug reports:

138 // an attached JNI thread can exit without detaching the thread, that results 139 // JVM to leak JavaThread object (JDK-8001743)

If my understanding of the check is correct then to me a clearer comment would be:

// Overlapping stack regions indicate that a JNI thread failed to // detach from the VM before exiting. This leaks the JavaThread object.

Cheers, David

Thanks,

-Zhengyu



More information about the hotspot-dev mailing list