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

David Holmes david.holmes at oracle.com
Fri Nov 15 09:37:22 PST 2013


Coleen,

There is no JVMTI code here.

David

On 16/11/2013 2:52 AM, Coleen Phillimore wrote:
> 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