RFR (S) 8026822: metaspace/flags/maxMetaspaceSize throws OOM of unexpected type ava.lang.OutOfMemoryError: Compressed class space

Stefan Karlsson stefan.karlsson at oracle.com
Fri Oct 25 00:37:22 PDT 2013


Hi Harold,

On 2013-10-25 02:09, harold seigel wrote:
> Hi,
>
> Please review this updated webrev containing the suggested changes: 
> http://cr.openjdk.java.net/~hseigel/bug_8026822_1/ 
> <http://cr.openjdk.java.net/%7Ehseigel/bug_8026822_1/>

*+ size_t Metaspace::class_chunk_size(size_t word_size) {*
*+   assert(using_class_space(), "Has to use class space");*
*+   return class_vsm()->calc_chunk_size(word_size) * BytesPerWord;*
*+ }*


This new function takes a paramater in words and returns a value in 
bytes. We've had numerous of bugs in the metaspace code because of words 
vs bytes mixing. Could you change the function to use the same type for 
the input parameter and return value?

thanks,
StefanK

>
> Thanks! Harold
>
> On 10/24/2013 2:47 PM, harold seigel wrote:
>> I checked with Coleen.  She likes the change from "Metadata space" to 
>> "Metaspace".
>>
>> I'll also change it in universe.cpp.
>>
>> Thanks, Harold
>>
>> On 10/24/2013 2:45 PM, Stefan Karlsson wrote:
>>> On 10/24/13 8:39 PM, harold seigel wrote:
>>>> Hi Stefan,
>>>>
>>>> Thanks for the review.  I'll make the changes that you suggest, 
>>>
>>> Thanks.
>>>
>>>> including replacing "Metadata space" with "Metaspace".
>>>
>>> Could you wait and see if Coleen is fine with the name change?
>>>
>>> If you do go ahead and change the name, don't forget to change this 
>>> string as well:
>>> src/share/vm/memory/universe.cpp:    msg = 
>>> java_lang_String::create_from_str("Metadata space", CHECK_false);
>>>
>>> thanks!
>>> StefanK
>>>
>>>>
>>>> Harold
>>>>
>>>> On 10/24/2013 2:22 PM, Stefan Karlsson wrote:
>>>>> On 10/24/13 7:02 PM, harold seigel wrote:
>>>>>> Hi,
>>>>>>
>>>>>> Please review this fix for bug 8026822.  The fix incorporates the 
>>>>>> requested chunk size when determining whether the 
>>>>>> OutOfMemoryError was caused by running out of Metaspace or 
>>>>>> Compressed class space.
>>>>>>
>>>>>> Open webrev at: http://cr.openjdk.java.net/~hseigel/bug_8026822/ 
>>>>>> <http://cr.openjdk.java.net/%7Ehseigel/bug_8026822/>
>>>>> 1) I think you want to use loader_data->metaspace_not_null() and 
>>>>> get rid of the NULL check, just like the caller of 
>>>>> report_metadata_oome does.
>>>>> 3328     Metaspace* metaspace = loader_data->metaspace_or_null();
>>>>> 3329     if (metaspace != NULL) {
>>>>>
>>>>> 2) There are some extreme corner cases where this might report the 
>>>>> incorrect OOME string, but I guess we'll live with those for now.
>>>>>
>>>>> 3) Since we now report "Metadata space" when we hit the 
>>>>> MaxMetaspaceSize or fail to commit memory, regardless of Metadata 
>>>>> type, would it be better to change the string "Metadata space" to 
>>>>> the more generic (and actually more used) "Metaspace"?
>>>>>
>>>>> thanks,
>>>>> StefanK
>>>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8026822
>>>>>>
>>>>>> The fix was tested with UTE vm.metaspace, vm.mlvm, vm.quick, and 
>>>>>> jtreg tests on Linux and vm.metaspace tests on Solaris.
>>>>>>
>>>>>> Thanks! Harold
>>>>>
>>>>
>>>
>>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/attachments/20131025/01a1f1de/attachment-0001.html 


More information about the hotspot-runtime-dev mailing list