Seems to be a problem with a deadlock when running tests

We have a multi module build with about 90 modules where there are intermittent problems with tests hanging inside Gradle code, specifically AsyncDispatch and AsyncReceive.

This has never happened with my MacBook Pro, but one of my colleagues has a Windows 7 machine where it happens almost all the time. Another colleague has a Windows XP where it happens more sporadically, typically on full builds, but not partial builds. It is always in the same module for both of them: the one with the most tests, about 1300, but not on the same test.

We are all running Gradle 1.0-milestone-6 and Java 1.6; they are running without the daemon and I with the daemon. They have tried with the daemon too, but it does not help.

Judgin by the thread dump, it does seem to hang in Gradle test code. Have you seen anything like this before?

I have seen this sometimes when running our performance test suite for Gradle. It seems to be related to the number of tests. Haven’t figured out the cause of the problem, yet. Will look into it.

All the threads are hanging in ‘LockSupport.park(…)’, so when searching for this, I found a blog entry that describes an old VM bug which arises from weak memory models.

This bug should have been fixed, but when trying “the fix” (’-XX:+UseMembar’), the problem almost disappeared. That is, it still happens from time to time on the Windows 7 machine.

Full thread dump Java HotSpot™ 64-Bit Server VM (20.6-b01-413 mixed mode):

“Incoming Connection [eaf47fc0-9c93-40b3-9293-e0cc845a4f07 port:59538, addresses:[/0:0:0:0:0:0:0:1, /127.0.0.1]]:0 outgoing org.gradle.api.internal.tasks.testing.worker.RemoteTestClassProcessor Thread 2” prio=5 tid=7f830ec35000 nid=0x114442000 waiting on condition [114441000]

java.lang.Thread.State: WAITING (parking)

at sun.misc.Unsafe.park(Native Method)

  • parking to wait for <7f6fa0c28> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)

at org.gradle.messaging.dispatch.DelayedReceive.receive(DelayedReceive.java:50)

at org.gradle.messaging.dispatch.AsyncReceive.receiveMessages(AsyncReceive.java:142)

at org.gradle.messaging.dispatch.AsyncReceive.access$000(AsyncReceive.java:36)

at org.gradle.messaging.dispatch.AsyncReceive$1.run(AsyncReceive.java:88)

at org.gradle.messaging.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:66)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

at java.lang.Thread.run(Thread.java:680)

“Incoming Connection [eaf47fc0-9c93-40b3-9293-e0cc845a4f07 port:59538, addresses:[/0:0:0:0:0:0:0:1, /127.0.0.1]]:0 outgoing org.gradle.api.internal.tasks.testing.worker.RemoteTestClassProcessor” prio=5 tid=7f830ec34800 nid=0x11433f000 waiting on condition [11433e000]

java.lang.Thread.State: WAITING (parking)

at sun.misc.Unsafe.park(Native Method)

  • parking to wait for <7f6f2c910> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)

at org.gradle.messaging.dispatch.AsyncDispatch.dispatchMessages(AsyncDispatch.java:114)

at org.gradle.messaging.dispatch.AsyncDispatch.access$000(AsyncDispatch.java:33)

at org.gradle.messaging.dispatch.AsyncDispatch$1.run(AsyncDispatch.java:72)

at org.gradle.messaging.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:66)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

at java.lang.Thread.run(Thread.java:680)

“Incoming Connection [eaf47fc0-9c93-40b3-9293-e0cc845a4f07 port:59538, addresses:[/0:0:0:0:0:0:0:1, /127.0.0.1]]:0 worker Thread 4” prio=5 tid=7f830b862000 nid=0x11423c000 waiting on condition [11423b000]

java.lang.Thread.State: WAITING (parking)

at sun.misc.Unsafe.park(Native Method)

  • parking to wait for <7f6f76440> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)

at org.gradle.messaging.dispatch.DelayedReceive.receive(DelayedReceive.java:50)

at org.gradle.messaging.dispatch.AsyncReceive.receiveMessages(AsyncReceive.java:142)

at org.gradle.messaging.dispatch.AsyncReceive.access$000(AsyncReceive.java:36)

at org.gradle.messaging.dispatch.AsyncReceive$1.run(AsyncReceive.java:88)

at org.gradle.messaging.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:66)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

at java.lang.Thread.run(Thread.java:680)

“Incoming Connection [eaf47fc0-9c93-40b3-9293-e0cc845a4f07 port:59538, addresses:[/0:0:0:0:0:0:0:1, /127.0.0.1]]:0 worker Thread 3” prio=5 tid=7f830528a000 nid=0x114139000 waiting on condition [114138000]

java.lang.Thread.State: WAITING (parking)

at sun.misc.Unsafe.park(Native Method)

  • parking to wait for <7f6fafa58> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)

at org.gradle.messaging.dispatch.AsyncDispatch.dispatchMessages(AsyncDispatch.java:114)

at org.gradle.messaging.dispatch.AsyncDispatch.access$000(AsyncDispatch.java:33)

at org.gradle.messaging.dispatch.AsyncDispatch$1.run(AsyncDispatch.java:72)

at org.gradle.messaging.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:66)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

at java.lang.Thread.run(Thread.java:680)

“Incoming Connection [eaf47fc0-9c93-40b3-9293-e0cc845a4f07 port:59538, addresses:[/0:0:0:0:0:0:0:1, /127.0.0.1]]:0 worker Thread 2” prio=5 tid=7f830ec33800 nid=0x114036000 waiting on condition [114035000]

java.lang.Thread.State: WAITING (parking)

at sun.misc.Unsafe.park(Native Method)

  • parking to wait for <7f6da3f98> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)

at org.gradle.messaging.dispatch.DelayedReceive.receive(DelayedReceive.java:50)

at org.gradle.messaging.dispatch.AsyncReceive.receiveMessages(AsyncReceive.java:142)

at org.gradle.messaging.dispatch.AsyncReceive.access$000(AsyncReceive.java:36)

at org.gradle.messaging.dispatch.AsyncReceive$1.run(AsyncReceive.java:88)

at org.gradle.messaging.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:66)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

at java.lang.Thread.run(Thread.java:680)

“Incoming Connection [eaf47fc0-9c93-40b3-9293-e0cc845a4f07 port:59538, addresses:[/0:0:0:0:0:0:0:1, /127.0.0.1]]:0 worker” prio=5 tid=7f830ecfb800 nid=0x113f33000 waiting on condition [113f32000]

java.lang.Thread.State: WAITING (parking)

at sun.misc.Unsafe.park(Native Method)

  • parking to wait for <7f6f2c988> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)

at org.gradle.messaging.dispatch.AsyncDispatch.dispatchMessages(AsyncDispatch.java:114)

at org.gradle.messaging.dispatch.AsyncDispatch.access$000(AsyncDispatch.java:33)

at org.gradle.messaging.dispatch.AsyncDispatch$1.run(AsyncDispatch.java:72)

at org.gradle.messaging.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:66)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

at java.lang.Thread.run(Thread.java:680)

“socket connection at /0:0:0:0:0:0:0:1%0:59538 with /0:0:0:0:0:0:0:1%0:59546 receive” prio=5 tid=7f830ecfa800 nid=0x113e30000 runnable [113e2e000]

java.lang.Thread.State: RUNNABLE

at java.lang.Throwable.fillInStackTrace(Native Method)

  • locked <7f37bb548> (a java.lang.ClassNotFoundException)

at java.lang.Throwable.(Throwable.java:218)

at java.lang.Exception.(Exception.java:59)

at java.lang.ClassNotFoundException.(ClassNotFoundException.java:65)

at java.net.URLClassLoader$1.run(URLClassLoader.java:202)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:190)

at java.lang.ClassLoader.loadClass(ClassLoader.java:306)

  • locked <7f44e4f38> (a java.net.URLClassLoader)

at java.lang.ClassLoader.loadClass(ClassLoader.java:295)

  • locked <7f46aad80> (a java.net.URLClassLoader)

at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

at org.gradle.util.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:46)

at java.lang.ClassLoader.loadClass(ClassLoader.java:295)

  • locked <7f4796c08> (a java.net.URLClassLoader)

at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

at org.gradle.util.ClassLoaderObjectInputStream.resolveClass(ClassLoaderObjectInputStream.java:38)

at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1574)

at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495)

at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1623)

at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1322)

at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)

at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870)

at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)

at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)

at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)

at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870)

at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)

at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)

at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)

at org.gradle.messaging.remote.internal.Message.receive(Message.java:38)

at org.gradle.messaging.remote.internal.DefaultMessageSerializer.read(DefaultMessageSerializer.java:31)

at org.gradle.messaging.remote.internal.inet.SocketConnection.receive(SocketConnection.java:76)

at org.gradle.messaging.remote.internal.DelegatingConnection.receive(DelegatingConnection.java:31)

at org.gradle.messaging.remote.internal.MessageHub$EndOfStreamConnection.receive(MessageHub.java:210)

at org.gradle.messaging.remote.internal.MessageHub$EndOfStreamConnection.receive(MessageHub.java:195)

at org.gradle.messaging.remote.internal.AsyncConnectionAdapter$ConnectionReceive.receive(AsyncConnectionAdapter.java:77)

at org.gradle.messaging.dispatch.AsyncReceive.receiveMessages(AsyncReceive.java:142)

at org.gradle.messaging.dispatch.AsyncReceive.access$000(AsyncReceive.java:36)

at org.gradle.messaging.dispatch.AsyncReceive$1.run(AsyncReceive.java:88)

at org.gradle.messaging.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:66)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

at java.lang.Thread.run(Thread.java:680)

“socket connection at /0:0:0:0:0:0:0:1%0:59538 with /0:0:0:0:0:0:0:1%0:59546 dispatch Thread 2” prio=5 tid=7f830ecfa000 nid=0x113d2d000 waiting on condition [113d2c000]

java.lang.Thread.State: WAITING (parking)

at sun.misc.Unsafe.park(Native Method)

  • parking to wait for <7f6f76290> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)

at org.gradle.messaging.dispatch.DelayedReceive.receive(DelayedReceive.java:50)

at org.gradle.messaging.dispatch.AsyncReceive.receiveMessages(AsyncReceive.java:142)

at org.gradle.messaging.dispatch.AsyncReceive.access$000(AsyncReceive.java:36)

at org.gradle.messaging.dispatch.AsyncReceive$1.run(AsyncReceive.java:88)

at org.gradle.messaging.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:66)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

at java.lang.Thread.run(Thread.java:680)

“socket connection at /0:0:0:0:0:0:0:1%0:59538 with /0:0:0:0:0:0:0:1%0:59546 dispatch” prio=5 tid=7f830ecf9000 nid=0x113c2a000 waiting on condition [113c29000]

java.lang.Thread.State: WAITING (parking)

at sun.misc.Unsafe.park(Native Method)

  • parking to wait for <7f6f14ea8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)

at org.gradle.messaging.dispatch.AsyncDispatch.dispatchMessages(AsyncDispatch.java:114)

at org.gradle.messaging.dispatch.AsyncDispatch.access$000(AsyncDispatch.java:33)

at org.gradle.messaging.dispatch.AsyncDispatch$1.run(AsyncDispatch.java:72)

at org.gradle.messaging.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:66)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

at java.lang.Thread.run(Thread.java:680)

“socket connection at /0:0:0:0:0:0:0:1%0:59538 with /0:0:0:0:0:0:0:1%0:59546 send” prio=5 tid=7f830ecf8800 nid=0x113b27000 waiting on condition [113b26000]

java.lang.Thread.State: WAITING (parking)

at sun.misc.Unsafe.park(Native Method)

  • parking to wait for <7f6f2ca00> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)

at org.gradle.messaging.dispatch.AsyncDispatch.dispatchMessages(AsyncDispatch.java:114)

at org.gradle.messaging.dispatch.AsyncDispatch.access$000(AsyncDispatch.java:33)

at org.gradle.messaging.dispatch.AsyncDispatch$1.run(AsyncDispatch.java:72)

at org.gradle.messaging.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:66)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

at java.lang.Thread.run(Thread.java:680)

“Incoming Connection [eaf47fc0-9c93-40b3-9293-e0cc845a4f07 port:59538, addresses:[/0:0:0:0:0:0:0:1, /127.0.0.1]]:0 message router” prio=5 tid=7f830ecf4800 nid=0x113a24000 waiting on condition [113a23000]

java.lang.Thread.State: WAITING (parking)

at sun.misc.Unsafe.park(Native Method)

  • parking to wait for <7f6fad748> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)

at org.gradle.messaging.dispatch.AsyncDispatch.dispatchMessages(AsyncDispatch.java:114)

at org.gradle.messaging.dispatch.AsyncDispatch.access$000(AsyncDispatch.java:33)

at org.gradle.messaging.dispatch.AsyncDispatch$1.run(AsyncDispatch.java:72)

at org.gradle.messaging.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:66)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

at java.lang.Thread.run(Thread.java:680)

“Run Gradle Worker 1 Thread 5” prio=5 tid=7f830c91d000 nid=0x11383e000 runnable [11383d000]

java.lang.Thread.State: RUNNABLE

at java.io.FileInputStream.readBytes(Native Method)

at java.io.FileInputStream.read(FileInputStream.java:198)

at java.lang.UNIXProcess$DeferredCloseInputStream.read(UNIXProcess.java:218)

at org.gradle.process.internal.ExecOutputHandleRunner.run(ExecOutputHandleRunner.java:46)

at org.gradle.messaging.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:66)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

at java.lang.Thread.run(Thread.java:680)

“Run Gradle Worker 1 Thread 4” prio=5 tid=7f830ebe0800 nid=0x11373b000 runnable [11373a000]

java.lang.Thread.State: RUNNABLE

at java.io.FileInputStream.readBytes(Native Method)

at java.io.FileInputStream.read(FileInputStream.java:220)

at java.lang.UNIXProcess$DeferredCloseInputStream.read(UNIXProcess.java:227)

at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)

at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)

at java.io.BufferedInputStream.read(BufferedInputStream.java:317)

  • locked <7f6ed7108> (a java.io.BufferedInputStream)

at java.io.FilterInputStream.read(FilterInputStream.java:90)

at org.gradle.process.internal.ExecOutputHandleRunner.run(ExecOutputHandleRunner.java:46)

at org.gradle.messaging.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:66)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

at java.lang.Thread.run(Thread.java:680)

“process reaper” daemon prio=5 tid=7f830ebdf000 nid=0x113535000 runnable [113534000]

java.lang.Thread.State: RUNNABLE

at java.lang.UNIXProcess.waitForProcessExit(Native Method)

at java.lang.UNIXProcess.access$900(UNIXProcess.java:17)

at java.lang.UNIXProcess$2$1.run(UNIXProcess.java:86)

“Run Gradle Worker 1 Thread 2” prio=5 tid=7f830d9fa000 nid=0x11324d000 in Object.wait() [11324c000]

java.lang.Thread.State: WAITING (on object monitor)

at java.lang.Object.wait(Native Method)

  • waiting on <7f6db8830> (a java.lang.UNIXProcess)

at java.lang.Object.wait(Object.java:485)

at java.lang.UNIXProcess.waitFor(UNIXProcess.java:115)

  • locked <7f6db8830> (a java.lang.UNIXProcess)

at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:88)

at org.gradle.messaging.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:66)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

at java.lang.Thread.run(Thread.java:680)

“Run Gradle Worker 1” prio=5 tid=7f830da2b000 nid=0x11306d000 waiting on condition [11306c000]

java.lang.Thread.State: WAITING (parking)

at sun.misc.Unsafe.park(Native Method)

  • parking to wait for <7f6da3f38> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)

at org.gradle.messaging.dispatch.AsyncDispatch.dispatchMessages(AsyncDispatch.java:114)

at org.gradle.messaging.dispatch.AsyncDispatch.access$000(AsyncDispatch.java:33)

at org.gradle.messaging.dispatch.AsyncDispatch$1.run(AsyncDispatch.java:72)

at org.gradle.messaging.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:66)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

at java.lang.Thread.run(Thread.java:680)

“Incoming TCP Connector” prio=5 tid=7f830ebde000 nid=0x112f6a000 runnable [112f69000]

java.lang.Thread.State: RUNNABLE

at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)

at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:152)

  • locked <7f6fad808> (a java.lang.Object)

at org.gradle.messaging.remote.internal.inet.TcpIncomingConnector$Receiver.run(TcpIncomingConnector.java:105)

at org.gradle.messaging.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:66)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

at java.lang.Thread.run(Thread.java:680)

“Dispatch org.gradle.api.internal.tasks.testing.processors.RestartEveryNTestClassProcessor@6f20bd9a” prio=5 tid=7f830ebdc800 nid=0x112a03000 waiting on condition [112a01000]

java.lang.Thread.State: TIMED_WAITING (parking)

at sun.misc.Unsafe.park(Native Method)

  • parking to wait for <7f6da4310> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:196)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2025)

at java.util.concurrent.ThreadPoolExecutor.awaitTermination(ThreadPoolExecutor.java:1253)

at org.gradle.messaging.concurrent.DefaultExecutorFactory$StoppableExecutorImpl.stop(DefaultExecutorFactory.java:91)

at org.gradle.messaging.concurrent.DefaultExecutorFactory$StoppableExecutorImpl.stop(DefaultExecutorFactory.java:81)

at org.gradle.process.internal.DefaultExecHandle.waitForFinish(DefaultExecHandle.java:277)

at org.gradle.process.internal.DefaultWorkerProcess.waitForStop(DefaultWorkerProcess.java:132)

at org.gradle.api.internal.tasks.testing.worker.ForkingTestClassProcessor.stop(ForkingTestClassProcessor.java:77)

at org.gradle.api.internal.tasks.testing.processors.RestartEveryNTestClassProcessor.endBatch(RestartEveryNTestClassProcessor.java:60)

at org.gradle.api.internal.tasks.testing.processors.RestartEveryNTestClassProcessor.stop(RestartEveryNTestClassProcessor.java:54)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)

at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)

at org.gradle.messaging.dispatch.FailureHandlingDispatch.dispatch(FailureHandlingDispatch.java:29)

at org.gradle.messaging.dispatch.AsyncDispatch.dispatchMessages(AsyncDispatch.java:132)

at org.gradle.messaging.dispatch.AsyncDispatch.access$000(AsyncDispatch.java:33)

at org.gradle.messaging.dispatch.AsyncDispatch$1.run(AsyncDispatch.java:72)

at org.gradle.messaging.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:66)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

at java.lang.Thread.run(Thread.java:680)

“Dispatch org.gradle.api.internal.tasks.testing.results.AttachParentTestResultProcessor@7d1dd0b7” prio=5 tid=7f830b9b9800 nid=0x112900000 waiting on condition [1128ff000]

java.lang.Thread.State: WAITING (parking)

at sun.misc.Unsafe.park(Native Method)

  • parking to wait for <7f5f3eb98> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)

at org.gradle.messaging.dispatch.AsyncDispatch.dispatchMessages(AsyncDispatch.java:114)

at org.gradle.messaging.dispatch.AsyncDispatch.access$000(AsyncDispatch.java:33)

at org.gradle.messaging.dispatch.AsyncDispatch$1.run(AsyncDispatch.java:72)

at org.gradle.messaging.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:66)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

at java.lang.Thread.run(Thread.java:680)

“Poller SunPKCS11-Darwin” daemon prio=1 tid=7f830b800000 nid=0x1120b4000 waiting on condition [1120b3000]

java.lang.Thread.State: TIMED_WAITING (sleeping)

at java.lang.Thread.sleep(Native Method)

at sun.security.pkcs11.SunPKCS11$TokenPoller.run(SunPKCS11.java:692)

at java.lang.Thread.run(Thread.java:680)

“Low Memory Detector” daemon prio=5 tid=7f8306835000 nid=0x111c68000 runnable [00000000]

java.lang.Thread.State: RUNNABLE

“C2 CompilerThread1” daemon prio=9 tid=7f8306834800 nid=0x111b65000 waiting on condition [00000000]

java.lang.Thread.State: RUNNABLE

“C2 CompilerThread0” daemon prio=9 tid=7f8306833800 nid=0x111a62000 waiting on condition [00000000]

java.lang.Thread.State: RUNNABLE

“Signal Dispatcher” daemon prio=9 tid=7f8306833000 nid=0x11195f000 waiting on condition [00000000]

java.lang.Thread.State: RUNNABLE

“Surrogate Locker Thread (Concurrent GC)” daemon prio=5 tid=7f8306832000 nid=0x11185c000 waiting on condition [00000000]

java.lang.Thread.State: RUNNABLE

“Finalizer” daemon prio=8 tid=7f8306829000 nid=0x111598000 in Object.wait() [111597000]

java.lang.Thread.State: WAITING (on object monitor)

at java.lang.Object.wait(Native Method)

  • waiting on <7f44e1090> (a java.lang.ref.ReferenceQueue$Lock)

at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)

  • locked <7f44e1090> (a java.lang.ref.ReferenceQueue$Lock)

at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)

at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

“Reference Handler” daemon prio=10 tid=7f8306828800 nid=0x111495000 in Object.wait() [111494000]

java.lang.Thread.State: WAITING (on object monitor)

at java.lang.Object.wait(Native Method)

  • waiting on <7f44e4d70> (a java.lang.ref.Reference$Lock)

at java.lang.Object.wait(Object.java:485)

at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)

  • locked <7f44e4d70> (a java.lang.ref.Reference$Lock)

“main” prio=5 tid=7f8306000800 nid=0x1096fb000 waiting on condition [1096f7000]

java.lang.Thread.State: WAITING (parking)

at sun.misc.Unsafe.park(Native Method)

  • parking to wait for <7f6e5cd38> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)

at org.gradle.messaging.dispatch.AsyncDispatch.stop(AsyncDispatch.java:180)

at org.gradle.internal.CompositeStoppable.stop(CompositeStoppable.java:92)

at org.gradle.messaging.actor.internal.DefaultActorFactory$ActorImpl.stop(DefaultActorFactory.java:93)

at org.gradle.internal.CompositeStoppable.stop(CompositeStoppable.java:92)

at org.gradle.api.internal.tasks.testing.processors.MaxNParallelTestClassProcessor.stop(MaxNParallelTestClassProcessor.java:75)

at org.gradle.api.internal.tasks.testing.processors.TestMainAction.run(TestMainAction.java:45)

at org.gradle.api.internal.tasks.testing.detection.DefaultTestExecuter.execute(DefaultTestExecuter.java:75)

at org.gradle.api.tasks.testing.Test.executeTests(Test.java:381)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)

at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)

at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1054)

at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:884)

at org.gradle.api.internal.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:196)

at org.gradle.api.internal.BeanDynamicObject.invokeMethod(BeanDynamicObject.java:102)

at org.gradle.api.internal.CompositeDynamicObject.invokeMethod(CompositeDynamicObject.java:93)

at org.gradle.api.tasks.testing.Test_Decorated.invokeMethod(Unknown Source)

at groovy.lang.GroovyObject$invokeMethod.call(Unknown Source)

at org.gradle.util.ReflectionUtil.invoke(ReflectionUtil.groovy:23)

at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$4.execute(AnnotationProcessingTaskFactory.java:150)

at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$4.execute(AnnotationProcessingTaskFactory.java:145)

at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:495)

at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:484)

at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:60)

at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)

at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:34)

at org.gradle.api.internal.changedetection.CacheLockHandlingTaskExecuter$1.run(CacheLockHandlingTaskExecuter.java:34)

at org.gradle.cache.internal.DefaultCacheAccess$2.create(DefaultCacheAccess.java:200)

at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:172)

at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:198)

at org.gradle.cache.internal.DefaultPersistentDirectoryStore.longRunningOperation(DefaultPersistentDirectoryStore.java:111)

at org.gradle.api.internal.changedetection.DefaultTaskArtifactStateCacheAccess.longRunningOperation(DefaultTaskArtifactStateCacheAccess.java:83)

at org.gradle.api.internal.changedetection.CacheLockHandlingTaskExecuter.execute(CacheLockHandlingTaskExecuter.java:32)

at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:55)

at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:57)

at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:41)

at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51)

at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:52)

at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:42)

at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:250)

at org.gradle.execution.DefaultTaskGraphExecuter.executeTask(DefaultTaskGraphExecuter.java:192)

at org.gradle.execution.DefaultTaskGraphExecuter.doExecute(DefaultTaskGraphExecuter.java:177)

at org.gradle.execution.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:83)

at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:36)

at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)

at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)

at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67)

at org.gradle.api.internal.changedetection.TaskCacheLockHandlingBuildExecuter$1.run(TaskCacheLockHandlingBuildExecuter.java:31)

at org.gradle.cache.internal.DefaultCacheAccess$1.create(DefaultCacheAccess.java:111)

at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:126)

at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:109)

at org.gradle.cache.internal.DefaultPersistentDirectoryStore.useCache(DefaultPersistentDirectoryStore.java:103)

at org.gradle.api.internal.changedetection.DefaultTaskArtifactStateCacheAccess.useCache(DefaultTaskArtifactStateCacheAccess.java:79)

at org.gradle.api.internal.changedetection.TaskCacheLockHandlingBuildExecuter.execute(TaskCacheLockHandlingBuildExecuter.java:29)

at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)

at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)

at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67)

at org.gradle.execution.DryRunBuildE