Proposal: ModuleReferenceImpl.c to use ReleaseStringUTFChars not jvmtiDeallocate

Langer, Christoph christoph.langer at sap.com
Mon Aug 28 05:34:25 UTC 2017


Hi Serguei,

you can push the change as proposed and add me as reviewer. As IBM has signed a contribution agreement there should be no issue with checking in something from Steve.

Best regards
Christoph

From: serviceability-dev [mailto:serviceability-dev-bounces at openjdk.java.net] On Behalf Of Steve Groeger
Sent: Samstag, 26. August 2017 08:10
To: serguei.spitsyn at oracle.com
Cc: serviceability-dev at openjdk.java.net
Subject: Re: Proposal: ModuleReferenceImpl.c to use ReleaseStringUTFChars not jvmtiDeallocate

Hi Serguei,

Thanks for raising the bug.

No I am not an OpenJDK author hence me asking for a sponsor and information on how to contribute the fix for this issue.

Any guidance you can give will be great.

Thanks
Steve Groeger

Sent from my iPhone

On 25 Aug 2017, at 19:12, "serguei.spitsyn at oracle.com<mailto:serguei.spitsyn at oracle.com>" <serguei.spitsyn at oracle.com<mailto:serguei.spitsyn at oracle.com>> wrote:
Hi Steve,

Thank you for reporting this!

I've filed the bug:
  https://bugs.openjdk.java.net/browse/JDK-8186776
    use ReleaseStringUTFChars instead of jvmtiDeallocate to release strings

Are you and OpenJDK author?

Thanks,
Serguei



On 8/25/17 10:03, Steve Groeger wrote:
I would like to propose the change below to src/jdk.jdwp.agent/share/native/libjdwp/ModuleReferenceImpl.c native code so that the getName function use ReleaseStringUTFChars() to release the memory obtained using GetStringUTFChars() instead of the current jvmtiDeallocate() method.

This change seems to be inline with documented use of these functions in the Oracle documentation for JNI Functions (http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/functions.html)

The code as is seems to cause a potential memory leak as the memory may not be released correctly (as the correct Release/Deallocate is not being used).

diff --git a/src/jdk.jdwp.agent/share/native/libjdwp/ModuleReferenceImpl.c b/src/jdk.jdwp.agent/share/native/libjdwp/ModuleReferenceImpl.c
--- a/src/jdk.jdwp.agent/share/native/libjdwp/ModuleReferenceImpl.c
+++ b/src/jdk.jdwp.agent/share/native/libjdwp/ModuleReferenceImpl.c
@@ -57,7 +57,7 @@
    }
    (void)outStream_writeString(out, name);
    if (name != NULL) {
-        jvmtiDeallocate(name);
+        JNI_FUNC_PTR(env, ReleaseStringUTFChars)(env, namestr, name);
    }
    return JNI_TRUE;
}

I originally raised this issue on the core-libs-dev list but they recommended I raise it on this list.
I would appreciate any feedback please, and how I would go about obtaining a sponsor and contributor

Thanks
Steve Groeger

Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/serviceability-dev/attachments/20170828/574642bb/attachment.html>


More information about the serviceability-dev mailing list