Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DynaTest JUnit5 Tests Freeze Gradle on JVM 11 while JVM 8 works #8523

Closed
mvysny opened this issue Feb 15, 2019 · 2 comments
Closed

DynaTest JUnit5 Tests Freeze Gradle on JVM 11 while JVM 8 works #8523

mvysny opened this issue Feb 15, 2019 · 2 comments

Comments

@mvysny
Copy link

mvysny commented Feb 15, 2019

Might be related to #5737 but perhaps it's something else, and hence I'm creating a new bug report.

I'm using custom JUnit5 runner called DynaTest. I have a demo project with just one test: https://github.com/mvysny/karibu-helloworld-application . The project build finishes fine on JDK8, however the very same build freezes on JDK11.

Expected Behavior

The test should run and Gradle should finish.

Current Behavior

Gradle freezes and never finishes. I'm attaching the thread dump below.

Steps to Reproduce (for bugs)

The easiest way is to run gradle in a docker if you don't have OpenJDK11 installed:

docker run --rm -ti openjdk:11 /bin/bash
git clone https://github.com/mvysny/karibu-helloworld-application
cd karibu-helloworld-application/
./gradlew

Your Environment

Any linux distro with OpenJDK11, I'm using Ubuntu 18.10 x86-64, but the issue is 100% reproducible in OpenJDK11 docker container as well. The project is using the Gradle Wrapper, Gradle version 5.2.1.

Full thread dump OpenJDK 64-Bit Server VM (11.0.2+9-Debian-3bpo91 mixed mode, sharing):

Threads class SMR info:
_java_thread_list=0x00007f1f88002580, length=12, elements={
0x00007f1fd0015000, 0x00007f1fd0207800, 0x00007f1fd0209800, 0x00007f1fd0211000,
0x00007f1fd0213000, 0x00007f1fd0215000, 0x00007f1fd0217000, 0x00007f1fd0251000,
0x00007f1fd025b000, 0x00007f1fd0867800, 0x00007f1fd088b800, 0x00007f1f88001000
}

"main" #1 prio=5 os_prio=0 cpu=369.94ms elapsed=13.27s tid=0x00007f1fd0015000 nid=0x5c5 waiting on condition  [0x00007f1fd6ee2000]
   java.lang.Thread.State: TIMED_WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@11.0.2/Native Method)
        - parking to wait for  <0x00000000fe5ccd18> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.parkNanos(java.base@11.0.2/LockSupport.java:234)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(java.base@11.0.2/AbstractQueuedSynchronizer.java:2123)
        at java.util.concurrent.ThreadPoolExecutor.awaitTermination(java.base@11.0.2/ThreadPoolExecutor.java:1454)
        at org.gradle.internal.concurrent.ManagedExecutorImpl.stop(ManagedExecutorImpl.java:81)
        at org.gradle.internal.concurrent.DefaultExecutorFactory$TrackedManagedExecutor.stop(DefaultExecutorFactory.java:77)
        at org.gradle.internal.concurrent.ManagedExecutorImpl.stop(ManagedExecutorImpl.java:72)
        at org.gradle.internal.remote.internal.hub.MessageHub.stop(MessageHub.java:221)
        at org.gradle.internal.concurrent.CompositeStoppable.stop(CompositeStoppable.java:103)
        - locked <0x00000000fe5cd0d8> (a org.gradle.internal.concurrent.CompositeStoppable)
        at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection.stop(MessageHubBackedObjectConnection.java:143)
        at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:145)
        at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:68)
        at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:62)
        at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:67)

"Reference Handler" #2 daemon prio=10 os_prio=0 cpu=0.50ms elapsed=13.26s tid=0x00007f1fd0207800 nid=0x5cf waiting on condition  [0x00007f1fb4fa9000]
   java.lang.Thread.State: RUNNABLE
        at java.lang.ref.Reference.waitForReferencePendingList(java.base@11.0.2/Native Method)
        at java.lang.ref.Reference.processPendingReferences(java.base@11.0.2/Reference.java:241)
        at java.lang.ref.Reference$ReferenceHandler.run(java.base@11.0.2/Reference.java:213)

"Finalizer" #3 daemon prio=8 os_prio=0 cpu=0.34ms elapsed=13.25s tid=0x00007f1fd0209800 nid=0x5d0 in Object.wait()  [0x00007f1fb4ea8000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(java.base@11.0.2/Native Method)
        - waiting on <0x00000000fe4c7488> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(java.base@11.0.2/ReferenceQueue.java:155)
        - waiting to re-lock in wait() <0x00000000fe4c7488> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(java.base@11.0.2/ReferenceQueue.java:176)
        at java.lang.ref.Finalizer$FinalizerThread.run(java.base@11.0.2/Finalizer.java:170)

"Signal Dispatcher" #4 daemon prio=9 os_prio=0 cpu=0.23ms elapsed=13.24s tid=0x00007f1fd0211000 nid=0x5d1 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" #5 daemon prio=9 os_prio=0 cpu=338.79ms elapsed=13.24s tid=0x00007f1fd0213000 nid=0x5d2 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

"C1 CompilerThread0" #7 daemon prio=9 os_prio=0 cpu=365.69ms elapsed=13.24s tid=0x00007f1fd0215000 nid=0x5d3 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

"Sweeper thread" #8 daemon prio=9 os_prio=0 cpu=9.09ms elapsed=13.24s tid=0x00007f1fd0217000 nid=0x5d4 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Service Thread" #9 daemon prio=9 os_prio=0 cpu=0.05ms elapsed=13.20s tid=0x00007f1fd0251000 nid=0x5d5 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Common-Cleaner" #10 daemon prio=8 os_prio=0 cpu=0.76ms elapsed=13.20s tid=0x00007f1fd025b000 nid=0x5d7 in Object.wait()  [0x00007f1fb462e000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(java.base@11.0.2/Native Method)
        - waiting on <0x00000000fe6e7048> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(java.base@11.0.2/ReferenceQueue.java:155)
        - waiting to re-lock in wait() <0x00000000fe6e7048> (a java.lang.ref.ReferenceQueue$Lock)
        at jdk.internal.ref.CleanerImpl.run(java.base@11.0.2/CleanerImpl.java:148)
        at java.lang.Thread.run(java.base@11.0.2/Thread.java:834)
        at jdk.internal.misc.InnocuousThread.run(java.base@11.0.2/InnocuousThread.java:134)

"Test worker" #12 prio=5 os_prio=0 cpu=111.69ms elapsed=12.89s tid=0x00007f1fd0867800 nid=0x5dc waiting on condition  [0x00007f1fb4105000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@11.0.2/Native Method)
        - parking to wait for  <0x00000000fe45c438> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(java.base@11.0.2/LockSupport.java:194)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@11.0.2/AbstractQueuedSynchronizer.java:2081)
        at org.gradle.internal.remote.internal.hub.queue.EndPointQueue.take(EndPointQueue.java:48)
        at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:393)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.2/ThreadPoolExecutor.java:1128)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.2/ThreadPoolExecutor.java:628)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
        at java.lang.Thread.run(java.base@11.0.2/Thread.java:834)

"/127.0.0.1:33720 to /127.0.0.1:44699 workers Thread 3" #14 prio=5 os_prio=0 cpu=6.55ms elapsed=12.88s tid=0x00007f1fd088b800 nid=0x5de runnable  [0x00007f1fa5cfa000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.EPoll.wait(java.base@11.0.2/Native Method)
        at sun.nio.ch.EPollSelectorImpl.doSelect(java.base@11.0.2/EPollSelectorImpl.java:120)
        at sun.nio.ch.SelectorImpl.lockAndDoSelect(java.base@11.0.2/SelectorImpl.java:124)
        - locked <0x00000000fe44e6f0> (a sun.nio.ch.Util$2)
        - locked <0x00000000fe44e4b0> (a sun.nio.ch.EPollSelectorImpl)
        at sun.nio.ch.SelectorImpl.select(java.base@11.0.2/SelectorImpl.java:141)
        at org.gradle.internal.remote.internal.inet.SocketConnection$SocketInputStream.read(SocketConnection.java:179)
        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:80)
        at org.gradle.internal.remote.internal.hub.InterHubMessageSerializer$MessageReader.read(InterHubMessageSerializer.java:63)
        at org.gradle.internal.remote.internal.hub.InterHubMessageSerializer$MessageReader.read(InterHubMessageSerializer.java:52)
        at org.gradle.internal.remote.internal.inet.SocketConnection.receive(SocketConnection.java:80)
        at org.gradle.internal.remote.internal.hub.MessageHub$ConnectionReceive.run(MessageHub.java:263)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.2/ThreadPoolExecutor.java:1128)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.2/ThreadPoolExecutor.java:628)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
        at java.lang.Thread.run(java.base@11.0.2/Thread.java:834)

"Attach Listener" #15 daemon prio=9 os_prio=0 cpu=0.47ms elapsed=0.09s tid=0x00007f1f88001000 nid=0x69f waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"VM Thread" os_prio=0 cpu=11.23ms elapsed=13.26s tid=0x00007f1fd0204800 nid=0x5ce runnable

"GC Thread#0" os_prio=0 cpu=9.06ms elapsed=13.27s tid=0x00007f1fd002a800 nid=0x5c7 runnable

"GC Thread#1" os_prio=0 cpu=4.47ms elapsed=0.10s tid=0x00007f1f9c001000 nid=0x69b runnable

"GC Thread#2" os_prio=0 cpu=1.94ms elapsed=0.10s tid=0x00007f1f9c002000 nid=0x69c runnable

"GC Thread#3" os_prio=0 cpu=2.95ms elapsed=0.10s tid=0x00007f1f9c003000 nid=0x69d runnable

"G1 Main Marker" os_prio=0 cpu=0.36ms elapsed=13.27s tid=0x00007f1fd003b800 nid=0x5c9 runnable

"G1 Conc#0" os_prio=0 cpu=0.03ms elapsed=13.27s tid=0x00007f1fd003d000 nid=0x5ca runnable

"G1 Refine#0" os_prio=0 cpu=1.72ms elapsed=13.26s tid=0x00007f1fd01dd800 nid=0x5cb runnable

"G1 Refine#1" os_prio=0 cpu=0.08ms elapsed=0.09s tid=0x00007f1fa0001000 nid=0x69e runnable

"G1 Young RemSet Sampling" os_prio=0 cpu=2.98ms elapsed=13.26s tid=0x00007f1fd01df800 nid=0x5cd runnable
"VM Periodic Task Thread" os_prio=0 cpu=14.10ms elapsed=13.20s tid=0x00007f1fd0253800 nid=0x5d6 waiting on condition

JNI global refs: 14, weak refs: 0
@mvysny
Copy link
Author

mvysny commented Feb 15, 2019

The freeze can also be observed with openjdk:9 and openjdk:10 docker image.

The openjdk:8 docker image passes the build correctly.

@mvysny
Copy link
Author

mvysny commented Feb 15, 2019

This is indeed a duplicate of #5737 . I've implemented a workaround in DynaTest 0.14 which now works properly on JDK11. If you wish to reproduce this bug, clone https://github.com/mvysny/karibu-helloworld-application and downgrade the dynatest version to 0.13.

@mvysny mvysny closed this as completed Feb 15, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant