RFR 8201265: Native memory leak in ClassLoader::add_to_exploded_build_list

harold seigel harold.seigel at oracle.com
Wed Apr 11 12:57:03 UTC 2018


Thanks David!

Harold


On 4/11/2018 1:29 AM, David Holmes wrote:
> 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