java/lang/runtime/ReferencedKeyTest.java fails for ShenandoahGC

Leslie Zhai zhaixiang at loongson.cn
Mon Jul 17 02:00:46 UTC 2023


Hi,

ACTION: main -- Failed. Execution failed: `main' threw exception: java.lang.ClassCastException: class java.lang.runtime.SoftReferenceKey cannot be cast to class java.lang.runtime.WeakReferenceKey (java.lang.runtime.SoftReferenceKey and java.lang.runtime.WeakReferenceKey are in module java.base of loader 'bootstrap')
REASON: User specified action: run main/othervm --patch-module java.base=${test.class.path} java.lang.runtime.ReferencedKeyTest  TIME:   0.664 seconds
messages:
command: main --patch-module java.base=/mnt/repo/openjdk/jdk/build/linux-x86_64-server-fastdebug/test-support/jtreg_test_jdk_java_lang_runtime_ReferencedKeyTest_java/classes/0/java/lang/runtime/ReferencedKeyTest.d java.lang.runtime.ReferencedKeyTest
reason: User specified action: run main/othervm --patch-module java.base=${test.class.path} java.lang.runtime.ReferencedKeyTest  started: Mon Jul 17 09:42:37 CST 2023
Mode: othervm [/othervm specified]
Additional options from @modules: --add-modules java.base --add-exports java.base/java.lang.runtime=ALL-UNNAMED
finished: Mon Jul 17 09:42:38 CST 2023
elapsed time (seconds): 0.664
configuration:
Boot Layer
  add modules: java.base                      add exports: java.base/java.lang.runtime ALL-UNNAMED
  patch:       java.base                   /mnt/repo/openjdk/jdk/build/linux-x86_64-server-fastdebug/test-support/jtreg_test_jdk_java_lang_runtime_ReferencedKeyTest_java/classes/0/java/lang/runtime/ReferencedKeyTest.d

STDOUT:
STDERR:
java.lang.ClassCastException: class java.lang.runtime.SoftReferenceKey cannot be cast to class java.lang.runtime.WeakReferenceKey (java.lang.runtime.SoftReferenceKey and java.lang.runtime.WeakReferenceKey are in module java.base of loader 'bootstrap')
at java.base/java.lang.runtime.ReferencedKeyMap.removeStaleReferences(ReferencedKeyMap.java:326)
at java.base/java.lang.runtime.ReferencedKeyMap.put(ReferencedKeyMap.java:209)
at java.base/java.lang.runtime.ReferencedKeyTest.populate(ReferencedKeyTest.java:106)
at java.base/java.lang.runtime.ReferencedKeyTest.mapTest(ReferencedKeyTest.java:61)
at java.base/java.lang.runtime.ReferencedKeyTest.main(ReferencedKeyTest.java:45)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at com.sun.javatest.regtest.agent.MainWrapper$MainTask.run(MainWrapper.java:138)
at java.base/java.lang.Thread.run(Thread.java:1570)

JavaTest Message: Test threw exception: java.lang.ClassCastException: class java.lang.runtime.SoftReferenceKey cannot be cast to class java.lang.runtime.WeakReferenceKey (java.lang.runtime.SoftReferenceKey and java.lang.runtime.WeakReferenceKey are in module java.base of loader 'bootstrap')
JavaTest Message: shutting down test

STATUS:Failed.`main' threw exception: java.lang.ClassCastException: class java.lang.runtime.SoftReferenceKey cannot be cast to class java.lang.runtime.WeakReferenceKey (java.lang.runtime.SoftReferenceKey and java.lang.runtime.WeakReferenceKey are in module java.base of loader 'bootstrap')
rerun:
cd /mnt/repo/openjdk/jdk/build/linux-x86_64-server-fastdebug/test-support/jtreg_test_jdk_java_lang_runtime_ReferencedKeyTest_java/scratch/0 && \
HOME=/home/loongson \
LANG=zh_CN.UTF-8 \
LC_ALL=C \
PATH=/bin:/usr/bin:/usr/sbin \
TEST_IMAGE_DIR=/mnt/repo/openjdk/jdk/build/linux-x86_64-server-fastdebug/images/test \
_JVM_DWARF_PATH=/mnt/repo/openjdk/jdk/build/linux-x86_64-server-fastdebug/images/symbols \
CLASSPATH=/mnt/repo/openjdk/jdk/build/linux-x86_64-server-fastdebug/test-support/jtreg_test_jdk_java_lang_runtime_ReferencedKeyTest_java/classes/0/java/lang/runtime/ReferencedKeyTest.d:/mnt/repo/openjdk/jdk/test/jdk/java/lang/runtime:/mnt/download/jtreg/lib/javatest.jar:/mnt/download/jtreg/lib/jtreg.jar \
    /mnt/repo/openjdk/jdk/build/linux-x86_64-server-fastdebug/images/jdk/bin/java \
        -Dtest.vm.opts='-Xmx768m -XX:MaxRAMPercentage=4.16667 -Dtest.boot.jdk=/mnt/download/jdk-20.0.1 -Djava.io.tmpdir=/mnt/repo/openjdk/jdk/build/linux-x86_64-server-fastdebug/test-support/jtreg_test_jdk_java_lang_runtime_ReferencedKeyTest_java/tmp -XX:+UseShenandoahGC -ea -esa' \
        -Dtest.tool.vm.opts='-J-Xmx768m -J-XX:MaxRAMPercentage=4.16667 -J-Dtest.boot.jdk=/mnt/download/jdk-20.0.1 -J-Djava.io.tmpdir=/mnt/repo/openjdk/jdk/build/linux-x86_64-server-fastdebug/test-support/jtreg_test_jdk_java_lang_runtime_ReferencedKeyTest_java/tmp -J-XX:+UseShenandoahGC -J-ea -J-esa' \
        -Dtest.compiler.opts= \
        -Dtest.java.opts= \
        -Dtest.jdk=/mnt/repo/openjdk/jdk/build/linux-x86_64-server-fastdebug/images/jdk \
        -Dcompile.jdk=/mnt/repo/openjdk/jdk/build/linux-x86_64-server-fastdebug/images/jdk \
        -Dtest.timeout.factor=4.0 \
        -Dtest.nativepath=/mnt/repo/openjdk/jdk/build/linux-x86_64-server-fastdebug/images/test/jdk/jtreg/native \
        -Dtest.root=/mnt/repo/openjdk/jdk/test/jdk \
        -Dtest.name=java/lang/runtime/ReferencedKeyTest.java \
        -Dtest.file=/mnt/repo/openjdk/jdk/test/jdk/java/lang/runtime/ReferencedKeyTest.java \
        -Dtest.src=/mnt/repo/openjdk/jdk/test/jdk/java/lang/runtime \
        -Dtest.src.path=/mnt/repo/openjdk/jdk/test/jdk/java/lang/runtime \
        -Dtest.classes=/mnt/repo/openjdk/jdk/build/linux-x86_64-server-fastdebug/test-support/jtreg_test_jdk_java_lang_runtime_ReferencedKeyTest_java/classes/0/java/lang/runtime/ReferencedKeyTest.d \
        -Dtest.class.path=/mnt/repo/openjdk/jdk/build/linux-x86_64-server-fastdebug/test-support/jtreg_test_jdk_java_lang_runtime_ReferencedKeyTest_java/classes/0/java/lang/runtime/ReferencedKeyTest.d \
        -Dtest.class.path.prefix=/mnt/repo/openjdk/jdk/build/linux-x86_64-server-fastdebug/test-support/jtreg_test_jdk_java_lang_runtime_ReferencedKeyTest_java/classes/0/java/lang/runtime/ReferencedKeyTest.d:/mnt/repo/openjdk/jdk/test/jdk/java/lang/runtime \
        -Dtest.modules=java.base/java.lang.runtime \
        -Dtest.enable.preview=true \
        --add-modules java.base \
        --add-exports java.base/java.lang.runtime=ALL-UNNAMED \
        -Xmx768m \
        -XX:MaxRAMPercentage=4.16667 \
        -Dtest.boot.jdk=/mnt/download/jdk-20.0.1 \
        -Djava.io.tmpdir=/mnt/repo/openjdk/jdk/build/linux-x86_64-server-fastdebug/test-support/jtreg_test_jdk_java_lang_runtime_ReferencedKeyTest_java/tmp \
        -XX:+UseShenandoahGC \
        -ea \
        -esa \
        -Djava.library.path=/mnt/repo/openjdk/jdk/build/linux-x86_64-server-fastdebug/images/test/jdk/jtreg/native \
        --patch-module java.base=/mnt/repo/openjdk/jdk/build/linux-x86_64-server-fastdebug/test-support/jtreg_test_jdk_java_lang_runtime_ReferencedKeyTest_java/classes/0/java/lang/runtime/ReferencedKeyTest.d \
        --enable-preview \
        com.sun.javatest.regtest.agent.MainWrapper /mnt/repo/openjdk/jdk/build/linux-x86_64-server-fastdebug/test-support/jtreg_test_jdk_java_lang_runtime_ReferencedKeyTest_java/java/lang/runtime/ReferencedKeyTest.d/main.0.jta


But -XX:+UseZGC -XX:+ZGenerational is not able to reproduce the issue.

And java/lang/ScopedValue/StressStackOverflow.java also fails for ShenandoahGC.

I am investigating the root cause if no one worked on it yet.

Thanks,
Leslie Zhai


More information about the shenandoah-dev mailing list