Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8238574

Shenandoah: Assertion failure due to missing null check

    XMLWordPrintable

Details

    • gc
    • b10

    Backports

      Description

        Some of vmTestbase_nsk_jdi test failures are due to missing null check in oop_load_not_in_heap() barrier.

        # A fatal error has been detected by the Java Runtime Environment:
        #
        # Internal Error (src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.inline.hpp:92), pid=879, tid=881
        # assert(value != __null) failed: checked before
        #
        # JRE version: OpenJDK Runtime Environment (15.0) (fastdebug build 15-internal+0-adhoc.zgu.jdk)
        # Java VM: OpenJDK 64-Bit Server VM (fastdebug 15-internal+0-adhoc.zgu.jdk, mixed mode, sharing, tiered, compressed oops, shenandoah gc, linux-amd64)
        # Problematic frame:
        # V [libjvm.so+0x807784] AccessInternal::PostRuntimeDispatch<ShenandoahBarrierSet::AccessBarrier<1196148ul, ShenandoahBarrierSet>, (AccessInternal::BarrierType)2, 1196148ul>::oop_access_barrier(void*)+0x4a4
        #

        Stack: [0x00007fcc0f7c1000,0x00007fcc0f8c2000], sp=0x00007fcc0f8bf210, free space=1016k
        Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
        V [libjvm.so+0x807784] AccessInternal::PostRuntimeDispatch<ShenandoahBarrierSet::AccessBarrier<1196148ul, ShenandoahBarrierSet>, (AccessInternal::BarrierType)2, 1196148ul>::oop_access_barrier(void*)+0x4a4
        V [libjvm.so+0xe79588] JNIHandles::resolve_external_guard(_jobject*)+0x128
        V [libjvm.so+0x1071e65] JvmtiEnv::SetTag(_jobject*, long)+0x25
        V [libjvm.so+0xff5e60] jvmti_SetTag+0x1c0
        C [libjdwp.so+0xeb4f] deleteNode+0x4f
        C [libjdwp.so+0xf99e] commonRef_compact+0xde
        C [libjdwp.so+0x16145] event_callback+0x305
        C [libjdwp.so+0x16f2f] cbClassPrepare+0x8f
        V [libjvm.so+0x109a877] JvmtiExport::post_class_prepare(JavaThread*, Klass*)+0x277
        V [libjvm.so+0xcc11e4] InstanceKlass::link_class_impl(Thread*)+0x424
        V [libjvm.so+0xcc1383] InstanceKlass::link_class(Thread*)+0x73
        V [libjvm.so+0xeb4e35] get_class_declared_methods_helper(JNIEnv_*, _jclass*, unsigned char, bool, Klass*, Thread*)+0x1d5
        V [libjvm.so+0xeb62d5] JVM_GetClassDeclaredConstructors+0xe5
        j java.lang.Class.getDeclaredConstructors0(Z)[Ljava/lang/reflect/Constructor;+0 java.base@15-internal
        j java.lang.Class.privateGetDeclaredConstructors(Z)[Ljava/lang/reflect/Constructor;+52 java.base@15-internal
        j java.lang.Class.getConstructor0([Ljava/lang/Class;I)Ljava/lang/reflect/Constructor;+14 java.base@15-internal
        J 379 c1 java.lang.Class.newInstance()Ljava/lang/Object; java.base@15-internal (134 bytes) @ 0x00007fcbf02d4d8c [0x00007fcbf02d4580+0x000000000000080c]
        j jdk.internal.reflect.MethodAccessorGenerator$1.run()Ljdk/internal/reflect/MagicAccessorImpl;+24 java.base@15-internal
        j jdk.internal.reflect.MethodAccessorGenerator$1.run()Ljava/lang/Object;+1 java.base@15-internal
        j java.security.AccessController.executePrivileged(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;Ljava/lang/Class;)Ljava/lang/Object;+29 java.base@15-internal
        j java.security.AccessController.doPrivileged(Ljava/security/PrivilegedAction;)Ljava/lang/Object;+5 java.base@15-internal
        j jdk.internal.reflect.MethodAccessorGenerator.generate(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/Class;IZZLjava/lang/Class;)Ljdk/internal/reflect/MagicAccessorImpl;+755 java.base@15-internal
        j jdk.internal.reflect.MethodAccessorGenerator.generateSerializationConstructor(Ljava/lang/Class;[Ljava/lang/Class;[Ljava/lang/Class;ILjava/lang/Class;)Ljdk/internal/reflect/SerializationConstructorAccessorImpl;+15 java.base@15-internal
        j jdk.internal.reflect.ReflectionFactory.generateConstructor(Ljava/lang/Class;Ljava/lang/reflect/Constructor;)Ljava/lang/reflect/Constructor;+24 java.base@15-internal
        j jdk.internal.reflect.ReflectionFactory.newConstructorForSerialization(Ljava/lang/Class;)Ljava/lang/reflect/Constructor;+90 java.base@15-internal
        j java.io.ObjectStreamClass.getSerializableConstructor(Ljava/lang/Class;)Ljava/lang/reflect/Constructor;+4 java.base@15-internal

        Attachments

          Issue Links

            Activity

              People

                zgu Zhengyu Gu
                zgu Zhengyu Gu
                Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved: