RFR: 8197901: Crash during GC when logging level is debug

Leonid Mesnik leonid.mesnik at oracle.com
Fri Feb 23 21:48:01 UTC 2018


Thank you for review.

Leonid

> On Feb 23, 2018, at 8:39 AM, coleen.phillimore at oracle.com wrote:
> 
> 
> Hi, I think this looks really good.
> Thank you for fixing this bug and verifying it with the original test case.
> Coleen
> 
> On 2/22/18 9:41 PM, Leonid Mesnik wrote:
>> Hi
>> 
>> Could you please review following fix which update implementation of Klass::external_name for anonymous classes.
>> Previously external_name tried to add hashcode of corresponding java_mirror for InstanceKlass if it exists. However the java_mirror could be incorrect during GC. Also external_name might tries to calculate hash_code if it was not “pre-calculated” during class verification. See JDK-8197442 <https://bugs.openjdk.java.net/browse/JDK-8197442> [Graal] runtime/Metaspace/DefineClass.java crashes with "biases should not be seen by VM thread here"
>> 
>> The suggested fix is to  print address of corresponding InstanceKlass instead of hashcode. It allows to identify anonymous classes and allows to use external_name at any time. The hashcode for java_mirror is still pre-calculated in verifier.cpp since ik->java_mirror()->identity_hash()  still might be used during safepoint. As a regression test I updated one of tests which redefine classes and easily reproduce problem when executed with full logging enabled.
>> Test java/lang/StackWalker/VerifyStackTrace.java is update to match new pattern.
>> 
>> webrev: http://cr.openjdk.java.net/~lmesnik/8197901/webrev.00/ <http://cr.openjdk.java.net/~lmesnik/8197901/webrev.00/>
>> bug: https://bugs.openjdk.java.net/browse/JDK-8197901 <https://bugs.openjdk.java.net/browse/JDK-8197901>
>> 
>> Leonid
> 



More information about the hotspot-runtime-dev mailing list