RFR: 8027630 SIGSEGV in const char*Klass::external_name()
david.holmes at oracle.com
Fri Nov 15 09:37:22 PST 2013
There is no JVMTI code here.
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.
>> On 11/15/2013 4:47 AM, Staffan Larsen wrote:
>>> 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/
More information about the hotspot-runtime-dev