Request for Approval: Backport of 8047212 : runtime/ParallelClassLoading/bootstrap/random/inner-complex assert(ObjectSynchronizer::verify_objmon_isinpool(inf)) failed: monitor is invalid
Yangfei (Felix)
felix.yang at huawei.com
Tue Aug 20 02:43:08 UTC 2019
Hi,
May I got review for the backport of 8146792 to 8u master repo please?
Webrev: http://cr.openjdk.java.net/~fyang/8047212-8u-backport/webrev.00/
Bug: https://bugs.openjdk.java.net/browse/JDK-8047212
JDK9 Changeset: http://hg.openjdk.java.net/jdk9/jdk9/hotspot/rev/a0c7a69277da
This bug can always be reproduced by running jcstress test on our 64/128-core aarch64 server platform with 8u aarch64 fastdebug build.
Error messge:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/home/yangfei/openjdk8u-aarch64/hotspot/src/share/vm/runtime/synchronizer.cpp:1252), pid=16581, tid=0x0000ffff23c7f200
# assert(ObjectSynchronizer::verify_objmon_isinpool(inf)) failed: monitor is invalid
#
# JRE version: OpenJDK Runtime Environment (8.0) (build 1.8.0-internal-fastdebug-yangfei_2019_08_18_14_24-b00)
# Java VM: OpenJDK 64-Bit Server VM (25.71-b00-fastdebug mixed mode linux-aarch64 compressed oops)
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please visit:
# http://bugreport.java.com/bugreport/crash.jsp
#
--------------- T H R E A D ---------------
Current thread (0x0000ffff24123000): JavaThread "worker1" daemon [_thread_in_Java, id=16798, stack(0x0000ffff23a7f000,0x0000ffff23c80000)]
Stack: [0x0000ffff23a7f000,0x0000ffff23c80000], sp=0x0000ffff23c7dac0, free space=2042k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x1117444] VMError::report_and_die()+0x144
V [libjvm.so+0x703ba4] report_vm_error(char const*, int, char const*, char const*)+0x7c
V [libjvm.so+0x1032a78] ObjectSynchronizer::inflate(Thread*, oop)+0xbc8
V [libjvm.so+0x1036b40] ObjectSynchronizer::slow_exit(oop, BasicLock*, Thread*)+0x110
V [libjvm.so+0xeeb340] SharedRuntime::complete_monitor_unlocking_C(oopDesc*, BasicLock*)+0x130
J 73% C2 org.openjdk.jcstress.tests.seqcst.sync.L1_S1__S1__S1__S2_L2__Test_jcstress.actor3()Ljava/lang/Void; (166 bytes) @ 0x0000ffff782c4318 [0x0000ffff782c2
f80+0x1398]
C 0x0000ffff2e872650
As the patch changes shared code, it has to be backported to 8u master repo before it goes to 8u-aarch64 repo.
Due to the use of 'PaddedEnd' in jdk9 or higher version, some trivial tweaks are necessary for the backport.
As we changed to use ordered access for global `gBlockList`, risk should be low.
Jtreg tested with 8u x86_64 fastdebug build. Also passed two round of jcstress test with 8u aarch64 fastdebug build.
Thanks for your help,
Felix
More information about the jdk8u-dev
mailing list