openj9 icon indicating copy to clipboard operation
openj9 copied to clipboard

java.lang.IllegalAccessException thrown for jdk.internal.misc.Unsafe.theUnsafe in Valhalla vt_standard testing

Open hzongaro opened this issue 4 months ago • 8 comments

Many test failures are seen in recent PR sanity.functional testing with {x|z|a|p}linuxvalst (i.e., vt_standard) for pull requests #20112 and #20332. In most, if not all, cases IllegalAccessExceptions are thrown. I was able to reproduce this in an internal personal build with the latest merged source.

12:45:24  openjdk version "24-internal" 2025-03-18
12:45:24  OpenJDK Runtime Environment (build 24-internal-adhoc.jenkins.BuildJDKnextx86-64linuxvtstandardPersonal)
12:45:24  Eclipse OpenJ9 VM (build master-d51176e7598, JRE 24 Linux amd64-64-Bit Compressed References 20241016_390 (JIT enabled, AOT enabled)
12:45:24  OpenJ9   - d51176e7598
12:45:24  OMR      - 0de486a739f
12:45:24  JCL      - 972edea3789 based on jdk-24+12)
13:00:49  Testing: Create and Restore Criu Checkpoint Image once - CheckpointDeadlock
13:00:49  Test start time: 2024/10/16 10:00:48 Pacific Standard Time
13:00:49  Running command: bash /home/jenkins/workspace/Test_openjdknext_j9_sanity.functional_x86-64_linux_vt_standard_Personal_testList_1/aqa-tests/TKG/../../jvmtest/functional/cmdLineTests/criu/criuScript.sh /home/jenkins/workspace/Test_openjdknext_j9_sanity.functional_x86-64_linux_vt_standard_Personal_testList_1/aqa-tests/TKG/../../jvmtest/functional/cmdLineTests/criu /home/jenkins/workspace/Test_openjdknext_j9_sanity.functional_x86-64_linux_vt_standard_Personal_testList_1/jdkbinary/j2sdk-image/bin/java " -Xjit -XX:+CRIURestoreNonPortableMode  --add-opens java.base/jdk.internal.misc=ALL-UNNAMED  --add-exports java.base/openj9.internal.criu=ALL-UNNAMED" org.openj9.criu.DeadlockTest CheckpointDeadlock 1 false false
13:00:49  Time spent starting: 2 milliseconds
13:00:51  Time spent executing: 2266 milliseconds
13:00:51  Test result: FAILED
13:00:51  Output from test:
13:00:51   [OUT] start running script
13:00:51   [OUT] export GLIBC_TUNABLES=glibc.cpu.hwcaps=-XSAVEC,-XSAVE,-AVX2,-ERMS,-AVX,-AVX_Fast_Unaligned_Load
13:00:51   [OUT] export LD_BIND_NOT=on
13:00:51   [OUT] /home/jenkins/workspace/Test_openjdknext_j9_sanity.functional_x86-64_linux_vt_standard_Personal_testList_1/jdkbinary/j2sdk-image/bin/java -XX:+EnableCRIUSupport  -Xjit -XX:+CRIURestoreNonPortableMode  --add-opens java.base/jdk.internal.misc=ALL-UNNAMED  --add-exports java.base/openj9.internal.criu=ALL-UNNAMED -cp /home/jenkins/workspace/Test_openjdknext_j9_sanity.functional_x86-64_linux_vt_standard_Personal_testList_1/aqa-tests/TKG/../../jvmtest/functional/cmdLineTests/criu/criu.jar org.openj9.criu.DeadlockTest CheckpointDeadlock 1
13:00:51   [OUT] Exception in thread "main" java.lang.InternalError: java.lang.IllegalAccessException: static final field has no write access: jdk.internal.misc.Unsafe.theUnsafe/jdk.internal.misc.Unsafe/putStatic, from class java.lang.Object (module java.base)
13:00:51   [OUT] 	at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newFieldAccessor(MethodHandleAccessorFactory.java:207)
13:00:51   [OUT] 	at java.base/jdk.internal.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:144)
13:00:51   [OUT] 	at java.base/java.lang.reflect.Field.acquireOverrideFieldAccessor(Field.java:1212)
13:00:51   [OUT] 	at java.base/java.lang.reflect.Field.getOverrideFieldAccessor(Field.java:1181)
13:00:51   [OUT] 	at java.base/java.lang.reflect.Field.get(Field.java:454)
13:00:51   [OUT] 	at org.openj9.criu.DeadlockTest.<clinit>(DeadlockTest.java:356)
13:00:51   [OUT] Caused by: java.lang.IllegalAccessException: static final field has no write access: jdk.internal.misc.Unsafe.theUnsafe/jdk.internal.misc.Unsafe/putStatic, from class java.lang.Object (module java.base)
13:00:51   [OUT] 	at java.base/java.lang.invoke.MemberName.makeAccessException(MemberName.java:913)
13:00:51   [OUT] 	at java.base/java.lang.invoke.MethodHandles$Lookup.unreflectField(MethodHandles.java:3608)
13:00:51   [OUT] 	at java.base/java.lang.invoke.MethodHandles$Lookup.unreflectSetter(MethodHandles.java:3599)
13:00:51   [OUT] 	at java.base/java.lang.invoke.MethodHandleImpl$1.unreflectField(MethodHandleImpl.java:1621)
13:00:51   [OUT] 	at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newFieldAccessor(MethodHandleAccessorFactory.java:185)
13:00:51   [OUT] 	... 5 more
13:00:51   [OUT] initiate restore
13:00:51   [OUT] Error (criu/protobuf.c:72): Unexpected EOF on (empty-image)
13:00:51   [OUT] Removed test output files
13:00:51   [OUT] finished script

hzongaro avatar Oct 17 '24 14:10 hzongaro