RFR: 8027630 SIGSEGV in const char*Klass::external_name()
coleen.phillimore at oracle.com
Fri Nov 15 08:16:31 PST 2013
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.
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