dragonwell8
dragonwell8 copied to clipboard
【regress】-XX:-UseCompressedOops选项运行java/lang/ClassLoader/deadlock/GetResource.java用例随机超时
"Thread-2" #25 prio=5 os_prio=0 tid=0x00007f4504006800 nid=0x172dc1 waiting for monitor entry [0x00007f45175cc000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.util.Hashtable.containsKey(Hashtable.java:335)
- waiting to lock <0x00007f45b8010ce0> (a java.util.Properties)
at com.alibaba.wisp.engine.WispConfiguration.<clinit>(WispConfiguration.java:85)
at com.alibaba.wisp.engine.WispEngine.createTimerScheduler(WispEngine.java:109)
at com.alibaba.wisp.engine.WispEngine.<clinit>(WispEngine.java:65)
at sun.misc.Unsafe.unpark(Unsafe.java:999)
at java.util.concurrent.locks.LockSupport.unpark(LockSupport.java:142)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.unparkSuccessor(AbstractQueuedSynchronizer.java:668)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.release(AbstractQueuedSynchronizer.java:1272)
at java.util.concurrent.locks.ReentrantLock.unlock(ReentrantLock.java:457)
at java.util.concurrent.CyclicBarrier.dowait(CyclicBarrier.java:261)
at java.util.concurrent.CyclicBarrier.await(CyclicBarrier.java:362)
at GetResource$2.run(GetResource.java:70)
"Thread-1" #24 prio=5 os_prio=0 tid=0x00007f4504005000 nid=0x172db3 in Object.wait() [0x00007f45176ce000]
java.lang.Thread.State: RUNNABLE
at sun.misc.Unsafe.park(Unsafe.java:1027)
- parking to wait for <0x00007f45b95e4e48> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:176)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2047)
at java.util.concurrent.CyclicBarrier.dowait(CyclicBarrier.java:234)
at java.util.concurrent.CyclicBarrier.await(CyclicBarrier.java:362)
at GetResource$1.run(GetResource.java:50)
- locked <0x00007f45b8010ce0> (a java.util.Properties)
"MainThread" #23 prio=5 os_prio=0 tid=0x00007f4e4c311800 nid=0x172d9f in Object.wait() [0x00007f45177ce000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00007f45b95e5a00> (a GetResource$1)
at java.lang.Thread.join(Thread.java:1399)
- locked <0x00007f45b95e5a00> (a GetResource$1)
at java.lang.Thread.join(Thread.java:1473)
at GetResource.run(GetResource.java:92)
at GetResource.main(GetResource.java:106)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:127)
at java.lang.Thread.run(Thread.java:855)
复现命令:
test=jdk/test/java/lang/ClassLoader/deadlock/GetResource.java
nproc=`nproc` ; dir="tmp-jtreg-"`basename $test .java` ; rm -rf $dir ; mkdir -p $dir ; time seq 500 | xargs -i -n 1 -P $nproc bash -c "jtreg -ea -esa -XX:-UseCompressedOops -timeoutFactor:4 -v:fail,error,time,nopass -nr -w $dir/index-{} $test &> $dir/{}.log ; grep 'Test results: passed: 1' -L $dir/{}.log"
97.log 94.log 84.log 79.log 72.log 70.log 59.log 57.log 46.log 45.log 43.log 37.log 36.log 29.log 1.log
同样的测试,开源版本没有问题:
-Xcomp选项也会出现该问题
https://tone.aliyun-inc.com/ws/xesljfzh/test_result/148357?tab=1