RFR 8201265: Native memory leak in ClassLoader::add_to_exploded_build_list

David Holmes david.holmes at oracle.com
Wed Apr 11 05:29:17 UTC 2018


On 11/04/2018 5:47 AM, harold seigel wrote:
> Hi Lois,
> 
> Thanks for the review.
> 
> I do not think that an EXCEPTION_MARK is needed.  Method 
> add_to_exploded_build_list(..., TRAPS) will just propagate exceptions 
> back to its caller.

Also if you did add an EXCEPTION_MARK prior to line 870 then it would 
trigger an abort if the potential exception from:

880     ClassPathEntry* new_entry = create_class_path_entry(path, &st, 
false, false, CHECK);

eventuated.

Changes look good.

Cheers,
David
-----

> Harold
> 
> 
> On 4/10/2018 3:30 PM, Lois Foltan wrote:
>>
>> On 4/10/2018 2:49 PM, harold seigel wrote:
>>
>>> Hi Lois,
>>>
>>> I think your suggestion is a good one.  Please see updated webrev at:
>>>
>>>     http://cr.openjdk.java.net/~hseigel/bug_8201265.2/webrev/
>>>
>>
>> Looks good Harold!  Thanks for fixing.  Minor note, an EXCEPTION_MARK 
>> maybe required ahead of line #870?  I don't need to see another webrev.
>> Thanks,
>> Lois
>>
>>> Thanks, Harold
>>>
>>>
>>> On 4/9/2018 5:16 PM, Lois Foltan wrote:
>>>> On 4/9/2018 4:35 PM, harold seigel wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> Please review this small fix for JDK-8201265.  The fix deletes the 
>>>>> native memory before propagating back the exception.
>>>>>
>>>>> Open Webrev: 
>>>>> http://cr.openjdk.java.net/~hseigel/bug_8201265/webrev/index.html
>>>> Hi Harold,
>>>>
>>>> I think the use of NEW_C_HEAP_ARRAY at line #874 is incorrect within 
>>>> ClassLoader::add_to_exploded_build_list().  If you look at both 
>>>> lines #754 & 818, NEW_RESOURCE_ARRAY is used prior to the call to 
>>>> create_class_path_entry().  I believe all the 
>>>> ClassLoader::create_class_path_entry() constructors for file, dir, 
>>>> zip, etc. allocate their own C_HEAP_ARRAY and make a copy of the 
>>>> "path" parameter.
>>>>
>>>> So I think the correct fix is to change #874 to use 
>>>> NEW_RESOURCE_ARRAY and remove the lines you added to check for 
>>>> pending exception.  And remove the FREE_C_HEAP_ARRAY at line #900.
>>>>
>>>> Thanks,
>>>> Lois
>>>>
>>>>>
>>>>> JBS Bug: https://bugs.openjdk.java.net/browse/JDK-8201265
>>>>>
>>>>> This fix was tested with Mach5 tiers 1 and 2 tests and builds on 
>>>>> all Mach5 platforms and with tiers 3-5 tests on Linux-x64.
>>>>>
>>>>> Thanks, Harold
>>>>>
>>>>
>>>
>>
> 


More information about the hotspot-runtime-dev mailing list