dragonwell8 icon indicating copy to clipboard operation
dragonwell8 copied to clipboard

【regress】-XX:-UseCompressedOops选项运行java/lang/ClassLoader/deadlock/GetResource.java用例随机超时

Open sendaoYan opened this issue 2 years ago • 1 comments

"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

同样的测试,开源版本没有问题:

image

sendaoYan avatar Feb 16 '23 12:02 sendaoYan

-Xcomp选项也会出现该问题

https://tone.aliyun-inc.com/ws/xesljfzh/test_result/148357?tab=1

sendaoYan avatar Feb 23 '23 08:02 sendaoYan