我正在使用 jenkins 从相同的共享代码在不同的机器上并行运行 gradle 测试。但是 gradle 测试任务永远挂起。从 threadump 我观察到主线程正在等待获取一些锁。任何人都可以提出解决方案/解决方法吗?
测试执行器的线程转储。
"main" #1 prio=5 os_prio=0 cpu=1437.50ms elapsed=110.46s tid=0x0000020a6b317800 nid=0xeb4 waiting on condition [0x00000015996fe000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@11.0.4/Native Method)
- parking to wait for <0x000000008233b800> (a java.util.concurrent.CountDownLatch$Sync)
at java.util.concurrent.locks.LockSupport.park(java.base@11.0.4/LockSupport.java:194)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(java.base@11.0.4/AbstractQueuedSynchronizer.java:885)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(java.base@11.0.4/AbstractQueuedSynchronizer.java:1039)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(java.base@11.0.4/AbstractQueuedSynchronizer.java:1345)
at java.util.concurrent.CountDownLatch.await(java.base@11.0.4/CountDownLatch.java:232)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:72)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:46)
at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:91)
at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:34)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:137)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:69)
at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:68)
at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:73)
"Reference Handler" #2 daemon prio=10 os_prio=2 cpu=46.88ms elapsed=110.42s tid=0x0000020a7aa32800 nid=0x20b0 waiting on condition [0x0000001599dfe000]
java.lang.Thread.State: RUNNABLE
at java.lang.ref.Reference.waitForReferencePendingList(java.base@11.0.4/Native Method)
at java.lang.ref.Reference.processPendingReferences(java.base@11.0.4/Reference.java:241)
at java.lang.ref.Reference$ReferenceHandler.run(java.base@11.0.4/Reference.java:213)
"Finalizer" #3 daemon prio=8 os_prio=1 cpu=0.00ms elapsed=110.42s tid=0x0000020a7b262000 nid=0xe78 in Object.wait() [0x0000001599eff000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(java.base@11.0.4/Native Method)
- waiting on <no object reference available>
at java.lang.ref.ReferenceQueue.remove(java.base@11.0.4/ReferenceQueue.java:155)
- waiting to re-lock in wait() <0x00000000811c6000> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(java.base@11.0.4/ReferenceQueue.java:176)
at java.lang.ref.Finalizer$FinalizerThread.run(java.base@11.0.4/Finalizer.java:170)
"Signal Dispatcher" #4 daemon prio=9 os_prio=2 cpu=0.00ms elapsed=110.40s tid=0x0000020a7b2b7000 nid=0x150 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Attach Listener" #5 daemon prio=5 os_prio=2 cpu=187.50ms elapsed=110.40s tid=0x0000020a7b2b8000 nid=0x2014 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread0" #6 daemon prio=9 os_prio=2 cpu=55750.00ms elapsed=110.40s tid=0x0000020a7b2ba800 nid=0x1eb4 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
No compile task
"C1 CompilerThread0" #8 daemon prio=9 os_prio=2 cpu=9015.63ms elapsed=110.40s tid=0x0000020a7b2c3000 nid=0x2d0 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
No compile task
"Sweeper thread" #9 daemon prio=9 os_prio=2 cpu=250.00ms elapsed=110.40s tid=0x0000020a7b2c4800 nid=0x1ca0 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Common-Cleaner" #10 daemon prio=8 os_prio=1 cpu=15.63ms elapsed=110.10s tid=0x0000020a7b543000 nid=0xdac in Object.wait() [0x000000159a4fe000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(java.base@11.0.4/Native Method)
- waiting on <no object reference available>
at java.lang.ref.ReferenceQueue.remove(java.base@11.0.4/ReferenceQueue.java:155)
- waiting to re-lock in wait() <0x00000000811c6370> (a java.lang.ref.ReferenceQueue$Lock)
at jdk.internal.ref.CleanerImpl.run(java.base@11.0.4/CleanerImpl.java:148)
at java.lang.Thread.run(java.base@11.0.4/Thread.java:834)
at jdk.internal.misc.InnocuousThread.run(java.base@11.0.4/InnocuousThread.java:134)
"Service Thread" #11 daemon prio=9 os_prio=0 cpu=0.00ms elapsed=109.25s tid=0x0000020a7dacc000 nid=0x1e4c runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Test worker" #13 prio=5 os_prio=0 cpu=63062.50ms elapsed=108.92s tid=0x0000020a7e50d000 nid=0x1e54 runnable [0x000000159abf8000]
java.lang.Thread.State: RUNNABLE
at java.util.HashMap.hash(java.base@11.0.4/HashMap.java:339)
at java.util.HashMap.putMapEntries(java.base@11.0.4/HashMap.java:510)
at java.util.LinkedHashMap.<init>(java.base@11.0.4/LinkedHashMap.java:384)
at sun.reflect.annotation.AnnotationParser.parseAnnotation2(java.base@11.0.4/AnnotationParser.java:275)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(java.base@11.0.4/AnnotationParser.java:121)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(java.base@11.0.4/AnnotationParser.java:73)
at java.lang.reflect.Executable.declaredAnnotations(java.base@11.0.4/Executable.java:604)
- locked <0x000000008b03f940> (a java.lang.reflect.Method)
at java.lang.reflect.Executable.declaredAnnotations(java.base@11.0.4/Executable.java:602)
- locked <0x000000008b03fa98> (a java.lang.reflect.Method)
at java.lang.reflect.Executable.getAnnotation(java.base@11.0.4/Executable.java:572)
at java.lang.reflect.Method.getAnnotation(java.base@11.0.4/Method.java:695)
at junit.framework.TestCase.runBare(TestCase.java:141)
at junit.framework.TestResult$1.protect(TestResult.java:122)
at junit.framework.TestResult.runProtected(TestResult.java:142)
at junit.framework.TestResult.run(TestResult.java:125)
at junit.framework.TestCase.run(TestCase.java:129)
at junit.framework.TestSuite.runTest(TestSuite.java:255)
at junit.framework.TestSuite.run(TestSuite.java:250)
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:84)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:110)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38)
at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@11.0.4/Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@11.0.4/NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@11.0.4/DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(java.base@11.0.4/Method.java:566)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
at com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:118)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@11.0.4/Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@11.0.4/NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@11.0.4/DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(java.base@11.0.4/Method.java:566)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:412)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.4/ThreadPoolExecutor.java:1128)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.4/ThreadPoolExecutor.java:628)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
at java.lang.Thread.run(java.base@11.0.4/Thread.java:834)
"/127.0.0.1:65320 to /127.0.0.1:65318 workers Thread 2" #14 prio=5 os_prio=0 cpu=31.25ms elapsed=108.76s tid=0x0000020a7e023800 nid=0x4b8 waiting on condition [0x000000159acfe000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@11.0.4/Native Method)
- parking to wait for <0x000000008233d130> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(java.base@11.0.4/LockSupport.java:194)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@11.0.4/AbstractQueuedSynchronizer.java:2081)
at org.gradle.internal.remote.internal.hub.queue.EndPointQueue.take(EndPointQueue.java:49)
at org.gradle.internal.remote.internal.hub.MessageHub$ConnectionDispatch.run(MessageHub.java:320)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.4/ThreadPoolExecutor.java:1128)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.4/ThreadPoolExecutor.java:628)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
at java.lang.Thread.run(java.base@11.0.4/Thread.java:834)
"/127.0.0.1:65320 to /127.0.0.1:65318 workers Thread 3" #15 prio=5 os_prio=0 cpu=15.63ms elapsed=108.76s tid=0x0000020a7c9e5000 nid=0xc34 runnable [0x000000159adfe000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(java.base@11.0.4/Native Method)
at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(java.base@11.0.4/WindowsSelectorImpl.java:339)
at sun.nio.ch.WindowsSelectorImpl.doSelect(java.base@11.0.4/WindowsSelectorImpl.java:167)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(java.base@11.0.4/SelectorImpl.java:124)
- locked <0x000000008233bed0> (a sun.nio.ch.Util$2)
- locked <0x000000008233be48> (a sun.nio.ch.WindowsSelectorImpl)
at sun.nio.ch.SelectorImpl.select(java.base@11.0.4/SelectorImpl.java:141)
at org.gradle.internal.remote.internal.inet.SocketConnection$SocketInputStream.read(SocketConnection.java:185)
at com.esotericsoftware.kryo.io.Input.fill(Input.java:146)
at com.esotericsoftware.kryo.io.Input.require(Input.java:178)
at com.esotericsoftware.kryo.io.Input.readByte(Input.java:295)
at org.gradle.internal.serialize.kryo.KryoBackedDecoder.readByte(KryoBackedDecoder.java:81)
at org.gradle.internal.remote.internal.hub.InterHubMessageSerializer$MessageReader.read(InterHubMessageSerializer.java:64)
at org.gradle.internal.remote.internal.hub.InterHubMessageSerializer$MessageReader.read(InterHubMessageSerializer.java:52)
at org.gradle.internal.remote.internal.inet.SocketConnection.receive(SocketConnection.java:81)
at org.gradle.internal.remote.internal.hub.MessageHub$ConnectionReceive.run(MessageHub.java:268)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.4/ThreadPoolExecutor.java:1128)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.4/ThreadPoolExecutor.java:628)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
at java.lang.Thread.run(java.base@11.0.4/Thread.java:834)
"Java2D Disposer" #16 daemon prio=10 os_prio=2 cpu=31.25ms elapsed=107.09s tid=0x0000020a0f5a9800 nid=0x18d0 in Object.wait() [0x000000159affe000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(java.base@11.0.4/Native Method)
- waiting on <no object reference available>
at java.lang.ref.ReferenceQueue.remove(java.base@11.0.4/ReferenceQueue.java:155)
- waiting to re-lock in wait() <0x000000008259dc10> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(java.base@11.0.4/ReferenceQueue.java:176)
at sun.java2d.Disposer.run(java.desktop@11.0.4/Disposer.java:144)
at java.lang.Thread.run(java.base@11.0.4/Thread.java:834)
"AWT-Windows" #18 daemon prio=6 os_prio=0 cpu=78.13ms elapsed=107.09s tid=0x0000020a7dd50000 nid=0x1c24 runnable [0x000000159b1ff000]
java.lang.Thread.State: RUNNABLE
at sun.awt.windows.WToolkit.eventLoop(java.desktop@11.0.4/Native Method)
at sun.awt.windows.WToolkit.run(java.desktop@11.0.4/WToolkit.java:305)
at java.lang.Thread.run(java.base@11.0.4/Thread.java:834)
"AWT-Shutdown" #21 prio=6 os_prio=0 cpu=0.00ms elapsed=95.95s tid=0x0000020a0f167800 nid=0x184c in Object.wait() [0x000000159a5ff000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(java.base@11.0.4/Native Method)
- waiting on <0x000000008259af90> (a java.lang.Object)
at java.lang.Object.wait(java.base@11.0.4/Object.java:328)
at sun.awt.AWTAutoShutdown.run(java.desktop@11.0.4/AWTAutoShutdown.java:291)
- waiting to re-lock in wait() <0x000000008259af90> (a java.lang.Object)
at java.lang.Thread.run(java.base@11.0.4/Thread.java:834)
"AWT-EventQueue-0" #25 prio=6 os_prio=0 cpu=15.63ms elapsed=95.34s tid=0x0000020a13199000 nid=0x129c waiting on condition [0x000000159b4fe000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@11.0.4/Native Method)
- parking to wait for <0x0000000082503fc8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(java.base@11.0.4/LockSupport.java:194)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@11.0.4/AbstractQueuedSynchronizer.java:2081)
at java.awt.EventQueue.getNextEvent(java.desktop@11.0.4/EventQueue.java:566)
at java.awt.EventDispatchThread.pumpOneEventForFilters(java.desktop@11.0.4/EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEventsForFilter(java.desktop@11.0.4/EventDispatchThread.java:124)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(java.desktop@11.0.4/EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(java.desktop@11.0.4/EventDispatchThread.java:109)
at java.awt.EventDispatchThread.pumpEvents(java.desktop@11.0.4/EventDispatchThread.java:101)
at java.awt.EventDispatchThread.run(java.desktop@11.0.4/EventDispatchThread.java:90)
"ClientMessageReceptor0" #26 daemon prio=5 os_prio=0 cpu=0.00ms elapsed=91.73s tid=0x0000020a0f8f5800 nid=0x1570 runnable [0x000000159b3fe000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(java.base@11.0.4/Native Method)
at java.net.SocketInputStream.socketRead(java.base@11.0.4/SocketInputStream.java:115)
at java.net.SocketInputStream.read(java.base@11.0.4/SocketInputStream.java:168)
at java.net.SocketInputStream.read(java.base@11.0.4/SocketInputStream.java:140)
at org.jacorb.orb.etf.StreamConnectionBase.read(StreamConnectionBase.java:111)
at org.jacorb.orb.giop.GIOPConnection.getMessage(GIOPConnection.java:389)
at org.jacorb.orb.giop.GIOPConnection.receiveMessagesLoop(GIOPConnection.java:541)
at org.jacorb.orb.giop.GIOPConnection.receiveMessages(GIOPConnection.java:533)
at org.jacorb.orb.giop.MessageReceptor.doWork(MessageReceptor.java:69)
at org.jacorb.util.threadpool.ConsumerTie.run(ConsumerTie.java:60)
at java.lang.Thread.run(java.base@11.0.4/Thread.java:834)
"ClientMessageReceptor1" #27 daemon prio=5 os_prio=0 cpu=15.63ms elapsed=91.63s tid=0x0000020a0f8f6800 nid=0x19c0 runnable [0x000000159b5fe000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(java.base@11.0.4/Native Method)
at java.net.SocketInputStream.socketRead(java.base@11.0.4/SocketInputStream.java:115)
at java.net.SocketInputStream.read(java.base@11.0.4/SocketInputStream.java:168)
at java.net.SocketInputStream.read(java.base@11.0.4/SocketInputStream.java:140)
at org.jacorb.orb.etf.StreamConnectionBase.read(StreamConnectionBase.java:111)
at org.jacorb.orb.giop.GIOPConnection.getMessage(GIOPConnection.java:389)
at org.jacorb.orb.giop.GIOPConnection.receiveMessagesLoop(GIOPConnection.java:541)
at org.jacorb.orb.giop.GIOPConnection.receiveMessages(GIOPConnection.java:533)
at org.jacorb.orb.giop.MessageReceptor.doWork(MessageReceptor.java:69)
at org.jacorb.util.threadpool.ConsumerTie.run(ConsumerTie.java:60)
at java.lang.Thread.run(java.base@11.0.4/Thread.java:834)
"CacheQueueHandler" #28 daemon prio=5 os_prio=0 cpu=0.00ms elapsed=91.33s tid=0x0000020a0f8f4000 nid=0x1f90 in Object.wait() [0x000000159b6ff000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(java.base@11.0.4/Native Method)
- waiting on <0x00000000835a6300> (a java.util.ArrayList)
at java.lang.Object.wait(java.base@11.0.4/Object.java:328)
at chs.utility.dataservices.cache.FileBasedCache$RequestHandler.getNextRequest(FileBasedCache.java:474)
- waiting to re-lock in wait() <0x00000000835a6300> (a java.util.ArrayList)
at chs.utility.dataservices.cache.FileBasedCache$RequestHandler.run(FileBasedCache.java:451)
at java.lang.Thread
| 归档时间: |
|
| 查看次数: |
164 次 |
| 最近记录: |