RFR(S) (8u): 8035938: Memory leak in JvmtiEnv::GetConstantPool
serguei.spitsyn at oracle.com
serguei.spitsyn at oracle.com
Wed Jan 28 21:51:35 UTC 2015
Looks good.
Thanks,
Serguei
On 1/28/15 9:34 AM, Kevin Walls wrote:
> Hi,
>
> I'd like a sanity check review for backporting this from latest/9 to
> jdk8u. It's changing os:free to delete.
>
> In 8u the same change is relevant, the changeset does not import
> directly as we have to remove an (unnecessary) NMT parameter (which
> gets removed by 8060074 in jdk9).
>
> Thanks
> Kevin
>
> diff --git a/src/share/vm/prims/jvmtiClassFileReconstituter.hpp b/src/share/vm/prims/jvmtiClassFileReconstituter.hpp
> --- a/src/share/vm/prims/jvmtiClassFileReconstituter.hpp
> +++ b/src/share/vm/prims/jvmtiClassFileReconstituter.hpp
> @@ -68,11 +68,11 @@
>
> ~JvmtiConstantPoolReconstituter() {
> if (_symmap != NULL) {
> - os::free(_symmap, mtClass);
> + delete _symmap;
> _symmap = NULL;
> }
> if (_classmap != NULL) {
> - os::free(_classmap, mtClass);
> + delete _classmap;
> _classmap = NULL;
> }
> }
>
>
>
> -------- Forwarded Message --------
> Subject: Re: RFR: 8035938: Memory leak in JvmtiEnv::GetConstantPool
> Date: Fri, 16 Jan 2015 18:28:50 +0000
> From: Kevin Walls <kevin.walls at oracle.com>
> Organization: Oracle Corporation
> To: daniel.daugherty at oracle.com, Mattis Castegren
> <mattis.castegren at oracle.com>
> CC: serviceability-dev at openjdk.java.net
>
>
>
> Thanks Serguei, thanks Dan!
>
>
> On 16/01/2015 17:51, Daniel D. Daugherty wrote:
> > > src/share/vm/prims/jvmtiClassFileReconstituter.hpp
> >
> > These lines allocate:
> >
> > line 59: _symmap = new SymbolHashMap();
> > line 60: _classmap = new SymbolHashMap();
> >
> > and these lines free incorrectly:
> >
> > line 71: os::free(_symmap);
> > line 75: os::free(_classmap);
> >
> > so the proposed fix looks good!
> >
> >
> > Dan
> >
> >
> > On 1/16/15 3:17 AM, Mattis Castegren wrote:
> >> Hi
> >>
> >> This bug is targeted for 7u80, with rdp2 next Tuesday. It would be
> >> great to get a review for this fix as soon as possible, so that we
> >> can get this fix out in the last public JDK 7 release.
> >>
> >> Kind Regards
> >> /Mattis
> >>
> >> -----Original Message-----
> >> From: Kevin Walls
> >> Sent: den 15 januari 2015 15:18
> >> To:serviceability-dev at openjdk.java.net
> >> Subject: RFR: 8035938: Memory leak in JvmtiEnv::GetConstantPool
> >>
> >> Hi,
> >>
> >> This is a review request for a change in JVMTI, where we os::free() some
> >> objects where we should delete them. The problem was logged against 7,
> >> though it exists up to the present day, below is a diff in current
> >> latesthttp://hg.openjdk.java.net/jdk9/hs-rt/hotspot
> >>
> >>
> >> Testing:
> >> I've used a native JVMTI agent to call GetConstantPool() during an
> >> object allocation callback. Memory usage does appear less after the
> >> change, it can be 5-6MB in a trivial testcase with a small number of
> >> allocations monitored, each inoking GetConstantlPool().
> >>
> >> (In my test agent the GetConstantPool() call returns a JVMTI error 101
> >> after a fairly short time and a relatively small number of allocations
> >> are monitored.)
> >>
> >> If this is OK to submit without testcase that's great. I don't see
> >> other examples of native agents in the standard hotspot tests.
> >>
> >> bug
> >>https://bugs.openjdk.java.net/browse/JDK-8035938
> >>
> >> diff:
> >> $ hg diff src/share/vm/prims/jvmtiClassFileReconstituter.hpp
> >> diff --git a/src/share/vm/prims/jvmtiClassFileReconstituter.hpp
> >> b/src/share/vm/prims/jvmtiClassFileReconstituter.hpp
> >> --- a/src/share/vm/prims/jvmtiClassFileReconstituter.hpp
> >> +++ b/src/share/vm/prims/jvmtiClassFileReconstituter.hpp
> >> @@ -68,11 +68,11 @@
> >>
> >> ~JvmtiConstantPoolReconstituter() {
> >> if (_symmap != NULL) {
> >> - os::free(_symmap);
> >> + delete _symmap;
> >> _symmap = NULL;
> >> }
> >> if (_classmap != NULL) {
> >> - os::free(_classmap);
> >> + delete _classmap;
> >> _classmap = NULL;
> >> }
> >> }
> >>
> >>
> >>
> >> Thanks
> >> Kevin
> >>
> >>
> >>
> >
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/serviceability-dev/attachments/20150128/c8f06e2d/attachment.html>
More information about the serviceability-dev
mailing list