RFR: 8170812: Metaspace corruption caused by incorrect memory size for MethodCounters

Coleen Phillimore coleen.phillimore at oracle.com
Thu Apr 6 13:20:27 UTC 2017


Deciding...   I say fix the lot now.  I think it's low risk to do so and will save filing another bug etc.
Thanks!
Coleen

> On Apr 6, 2017, at 9:02 AM, Thomas Stüfe <thomas.stuefe at gmail.com> wrote:
> 
> Hi Andrew,
> 
>> On Thu, Apr 6, 2017 at 12:57 PM, Andrew Haley <aph at redhat.com> wrote:
>> 
>>> On 06/04/17 11:35, Thomas Stüfe wrote:
>>> 
>>> I think it would make sense. From what I can see, the following methods
>> are affected:
>>> 
>>> ConstantPool::header_size()
>> 
>> Not this one, because the declaration of ConstantPoolCache is
>> 
>>  int             _length;
>>  ConstantPool*   _constant_pool;          // the corresponding constant
>> pool
>> 
>> The size of this declaration must be a multiple of wordSize
>> because the fields must be allocated in order, they must be
>> aligned, and _constant_pool comes last.
>> 
>> It's very confusing code, but not actually a bug, IMO.
>> 
>> 
> I am confused:
> 
> ConstantPool::header_size() is used by ConstantPool::size(len), which in
> turn is used in ConstantPool::allocate() to allocate space for a
> ConstantPool. header_size() may be too small, and so the space allocated
> for the whole ConstantPool plus data may be too small, no?
> 
> ..Thomas
> 
> 
> 
>> Andrew.
>> 
>> 



More information about the hotspot-dev mailing list