RFR [8022584] Memory leak in some NetworkInterface methods
Janda Martin
jandam at crcdata.cz
Thu Aug 8 07:20:01 UTC 2013
Hello,
are you planning backport to 7u40? I suppose that final version will have minimal impact to code with low probability of introducing regression.
This leak is critical for my application because it is periodically scanning network interfaces and should run 24/7.
Thank you
Martin
----- Original Message -----
From: "David Holmes" <david.holmes at oracle.com>
To: "Ivan Gerasimov" <ivan.gerasimov at oracle.com>
Cc: "core-libs-dev" <core-libs-dev at openjdk.java.net>, "OpenJDK Network Dev list" <net-dev at openjdk.java.net>
Sent: Thursday, August 8, 2013 7:01:25 AM
Subject: Re: RFR [8022584] Memory leak in some NetworkInterface methods
Ivan,
On 8/08/2013 2:05 PM, Ivan Gerasimov wrote:
> David, Alan,
>
> I added checking for NULL results and throwing OOMException if necessary.
You don't need to throw it yourself:
JNU_ThrowOutOfMemoryError(env, NULL);
Assuming a correct VM implementation if NULL is returned then an OOME
should already be pending and will be thrown as soon as your native code
returns to Java.
Thanks,
David
> I've also added some spaces along the code to improve indentation.
>
> Would you please review the updated webrev?
> http://washi.ru.oracle.com/~igerasim/webrevs/8022584/1/webrev/
>
> Sincerely yours,
> Ivan
>
>
> On 08.08.2013 5:35, David Holmes wrote:
>> On 8/08/2013 11:20 AM, Ivan Gerasimov wrote:
>>> Thanks Alan!
>>>
>>> I've checked that and it turns out that GetStringUTFChars cannot return
>>> NULL.
>>> For allocation of the result string it calls AllocateHeap() with the
>>> default EXIT_OOM fail strategy.
>>> Thus, in case of being unable to allocate memory it simply stops VM.
>>
>> Ouch! That is a hotspot bug. GetStringUTFChars is supposed to throw
>> OutOfMemoryError if it has memory issues, not abort the VM!
>>
>> I recommend that you check for NULL and/or a pending exception.
>>
>> David
>>
>>> Sincerely yours,
>>> Ivan
>>>
>>> On 08.08.2013 5:05, Alan Bateman wrote:
>>>> (cc'ing net-dev).
>>>>
>>>> The change looks okay to me. One suggestion (while you are there) is
>>>> to check the return from GetStringUTFChars so that the name returns
>>>> when it fails with NULL.
>>>>
>>>> -Alan.
>>>>
>>>> On 07/08/2013 17:46, Ivan Gerasimov wrote:
>>>>> Hello everybody!
>>>>>
>>>>> Some methods of NetworkInterface class were reported to leak memory.
>>>>> http://bugs.sun.com/view_bug.do?bug_id=JDK-8022584 (not yet
>>>>> available.)
>>>>>
>>>>> Examples are isUp() and isLoopback().
>>>>>
>>>>> Affected versions of jdk are 6, 7 and 8
>>>>>
>>>>> Would you please review a simple fix that removes the unnecessary
>>>>> allocation?
>>>>> http://cr.openjdk.java.net/~igerasim/8022584/0/webrev/
>>>>>
>>>>> Sincerely yours,
>>>>> Ivan
>>>>
>>>>
>>>>
>>>
>>
>>
>
More information about the core-libs-dev
mailing list