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

JVMTI: reference_info in HeapReferenceCallback is not NULL for "otherwise" reference_kind

XMLWordPrintable

    • b01
    • generic
    • generic
    • Verified

        Filed By : JCK team
        JDK : java full version "1.6.0-fcs"
        JCK : 6a-b11
        Platform[s] : all
        switch/Mode : default
        JCK test owner : http://javaweb.sfbay/jcce/tcks/jck/docs/others/owners.jto
        Failed tests:
          vm/jvmti/FollowReferences/fref001/fref00107/fref00107.html
          vm/jvmti/FollowReferences/fref001/fref00107/fref00107a.html

        The JVM TI 1.1 specification for Heap Reference Callback at:
          http://javaweb.sfbay/java/re/jdk/6.0/latest/docs/platform/jvmti/jvmti.html#jvmtiHeapReferenceCallback
        states as follows:
          ---Excerpt-from-spec---
          typedef jint (JNICALL *jvmtiHeapReferenceCallback)
              (jvmtiHeapReferenceKind reference_kind,
               const jvmtiHeapReferenceInfo* reference_info,
               jlong class_tag,
               jlong referrer_class_tag,
               jlong size,
               jlong* tag_ptr,
               jlong* referrer_tag_ptr,
               jint length,
               void* user_data);
          ...
          reference_info const jvmtiHeapReferenceInfo*

          Details about the reference. Set when the reference_kind is JVMTI_HEAP_REFERENCE_FIELD,
          JVMTI_HEAP_REFERENCE_STATIC_FIELD, JVMTI_HEAP_REFERENCE_ARRAY_ELEMENT, JVMTI_HEAP_REFERENCE_CONSTANT_POOL,
          JVMTI_HEAP_REFERENCE_STACK_LOCAL, or JVMTI_HEAP_REFERENCE_JNI_LOCAL. Otherwise NULL.
          ---End-of-excerpt---

        However, reference_info is not NULL when reference_kind is not one of above constants,
        (for example, when reference_kind is JVMTI_HEAP_REFERENCE_CLASS).

        Please see attached .jtr file for detail and use the following script to reproduce the failures:
        --- runTest.sh ---
        echo `uname -a`

        TESTEDJDK="/java/re/jdk/6.0/latest/binaries/solaris-sparc"
        CC="/net/ipcsdist/export1/patches/nozomi_patch/dist/sparc-S2/bin/cc"
        JCK="/java/re/jck/6a/qac/latest/binaries/JCK-runtime-6a/"
        OUTPUTDIR=$HOME
        TESTCLASS="javasoft.sqe.tests.vm.jvmti.fref001.fref00107.fref00107"
        AGENTOPTS="-agentlib:jckjvmti=fref00107"
        JDKOPTS="-showversion -Xfuture"
        TESTARGS="-platform.jvmtiSupported true"

        echo "Compiling libjckjvmt.so ..."
        ${CC} -G -KPIC -o ${OUTPUTDIR}/libjckjvmti.so -I${JCK} -I${JCK}src/share/lib/jvmti/include \
            -I${JCK}src/share/lib/jni/include -I${JCK}src/share/lib/jni/include/solaris \
            ${JCK}src/share/lib/jvmti/jckjvmti.c

        export LD_LIBRARY_PATH=${OUTPUTDIR}:${LD_LIBRARY_PATH}

        echo " "
        RUNCMD="${TESTEDJDK}/bin/java ${AGENTOPTS} ${JDKOPTS} -classpath ${JCK}/classes ${TESTCLASS} ${TESTARGS}"
        echo "${RUNCMD}"
        $RUNCMD
        --- runTest.sh ---

        Test output:
        ==============
        <yg153347@sqeel> ./runTest.sh
        SunOS sqeel 5.9 Generic_122300-02 sun4u sparc SUNW,Ultra-Enterprise
        Compiling libjckjvmt.so ...
         
        /java/re/jdk/6.0/latest/binaries/solaris-sparc/bin/java -agentlib:jckjvmti=fref00107 -showversion -Xfuture -classpath /java/re/jck/6a/qac/latest/binaries/JCK-runtime-6a//classes javasoft.sqe.tests.vm.jvmti.fref001.fref00107.fref00107 -platform.jvmtiSupported true
        java version "1.6.0"
        Java(TM) SE Runtime Environment (build 1.6.0-b105)
        Java HotSpot(TM) Server VM (build 1.6.0-b105, mixed mode)

        Checking can_tag_objects capability ... available
        reference_info is unexpectedly NOT NULL for JVMTI_HEAP_REFERENCE_CLASS
        HeapReferenceCallback was called 605 times
        ==============

        Sources for JCK tests failed due to this issue are available at:
          http://javaweb.sfbay.sun.com/java/re/jck/6a/qac/latest/binaries/JCK-runtime-6a/tests/vm/jvmti/FollowReferences/fref001/fref00107/fref00107.html

              sspitsyn Serguei Spitsyn
              ygaevsky Yuri Gaevsky (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: