RFR: 8027630 SIGSEGV in const char*Klass::external_name()

Coleen Phillimore coleen.phillimore at oracle.com
Fri Nov 15 08:52:12 PST 2013


On 11/15/2013 11:16 AM, Coleen Phillimore wrote:
>
> This fix looks good.   If you add the macro JVMTI_ONLY() around the 
> line you added in metadataOnStackMark.cpp and the one before it, the 
> minimal vm would build again.

Never mind the JVMTI_ONLY code.  Joe is going to fix it with the other 
one that broke the minimal build.  This change looks good as is.

Thanks,
Coleen

>
> Thanks,
> Coleen
>
> On 11/15/2013 4:47 AM, Staffan Larsen wrote:
>> All,
>>
>> The StackFrameInfo class used when creating stack dumps from the 
>> management APIs keeps references to Methods. This is similar to what 
>> BacktraceBuilder does when creating stack traces in 
>> java_lang_Throwable::fill_in_stack_trace(). For permgen removal, 
>> BacktraceBuilder was updated to add a reference to the holder class 
>> of the methods, otherwise these classes can be unloaded.
>>
>> This fix adds the same kind of code to StackFrameInfo so that it now 
>> has an oop reference to the class. The new pop has been added to the 
>> oops_do() method.
>>
>> In addition, the Method reference needs to be made visible to the 
>> MetadataOnStackMark class. To fix this a long chain of metadata_do() 
>> calls have been added.
>>
>> I would really like to create a test for this race, but can’t figure 
>> out a reliable way to do so.
>>
>> bug: http://bugs.openjdk.java.net/browse/JDK-8027630
>> webrev: http://cr.openjdk.java.net/~sla/8027630/webrev.00/
>>
>> Thanks,
>> /Staffan
>>
>



More information about the hotspot-runtime-dev mailing list