-
-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
[Play 2.3.0 Scala] Tests hang (deadlock?) #2986
Comments
Thanks @bjoernhaeuser. Here's a quick analysis. One thread stops the Actor system using
While that's happening, another thread tries to get the Actor system using
This causes a deadlock. We can fix by making You might be able to work around the problem by investigating if you're running any tests in parallel, just in case one thread is try to use the Play application while another one is stopping the application. (Google "parallel execution", "sequential", etc.) |
Hi, running the test with |
There's also a http://stackoverflow.com/questions/8026866/parallel-execution-of-tests/8030910#8030910 |
See fix here: #2993. |
Moving completely to ScalaTest (and not using both, ScalaTest + Specs2) fixed this issue. |
Good to know. Thanks for reporting. |
The issue still exists for me. I'm using Play 2.3 with Java under Windows. The strange think about that is that some of the test sometimes work and again sometimes don't. And when they work it seems they take more time then they used to. What is even more strange is that some test do work when run separately but fail if run as a suit. That is why I suspecting also a Threading issue. I use Java 8 Update 5 (jdk1.8.0_05) For further inside I added a Thread dumb when the system got stuck again: [info] play - datasource [jdbc:h2:mem:play-test--748984931;] bound to JNDI as DefaultDS "application-akka.actor.default-dispatcher-4" #78 prio=5 os_prio=0 tid=0x000000001e1e5800 nid=0x16a0 waiting on condition [0x000000002783f000] "application-akka.actor.default-dispatcher-3" #77 prio=5 os_prio=0 tid=0x000000001e1e7000 nid=0x1564 waiting for monitor entry [0x000000002773c000] "application-akka.actor.default-dispatcher-2" #76 prio=5 os_prio=0 tid=0x000000001e1e5000 nid=0x1984 waiting on condition [0x000000002656f000] "New I/ server boss #34" #74 prio=5 os_prio=0 tid=0x000000001e0d0000 nid=0x860 runnable [0x000000002636e000] "New I/ worker #33" #73 prio=5 os_prio=0 tid=0x000000001e0cb000 nid=0x161c runnable [0x000000002626e000] "New I/ worker #32" #72 prio=5 os_prio=0 tid=0x00000000226c7000 nid=0x8d8 runnable [0x00000000249ee000] "New I/ worker #31" #71 prio=5 os_prio=0 tid=0x00000000226c3800 nid=0x13b4 runnable [0x00000000248ee000] "New I/ worker #30" #70 prio=5 os_prio=0 tid=0x00000000226c5000 nid=0x10ec runnable [0x00000000247ee000] "New I/ worker #29" #69 prio=5 os_prio=0 tid=0x00000000226c4000 nid=0x4d8 runnable [0x00000000246ee000] "New I/ worker #28" #68 prio=5 os_prio=0 tid=0x00000000226c5800 nid=0x368 runnable [0x00000000245ee000] "New I/ worker #27" #67 prio=5 os_prio=0 tid=0x00000000226c6800 nid=0x15d8 runnable [0x00000000244ee000] "New I/ worker #26" #66 prio=5 os_prio=0 tid=0x00000000226c0800 nid=0x92c runnable [0x00000000243ee000] "New I/ worker #25" #65 prio=5 os_prio=0 tid=0x00000000226bf800 nid=0x1a04 runnable [0x00000000242ee000] "New I/ worker #24" #64 prio=5 os_prio=0 tid=0x00000000226c2800 nid=0xedc runnable [0x00000000241ee000] "New I/ worker #23" #63 prio=5 os_prio=0 tid=0x00000000226c2000 nid=0x1054 runnable [0x00000000240ee000] "New I/ worker #22" #62 prio=5 os_prio=0 tid=0x00000000226c1000 nid=0xfe8 runnable [0x0000000023fee000] "New I/ worker #21" #61 prio=5 os_prio=0 tid=0x00000000226be000 nid=0x1198 runnable [0x0000000023eee000] "New I/ worker #20" #60 prio=5 os_prio=0 tid=0x00000000226bf000 nid=0x16f8 runnable [0x0000000023dee000] "New I/ worker #19" #59 prio=5 os_prio=0 tid=0x00000000226ba800 nid=0x1030 runnable [0x0000000023cee000] "New I/ worker #18" #58 prio=5 os_prio=0 tid=0x00000000226bd800 nid=0xb84 runnable [0x0000000023aee000] "net.sf.ehcache.CacheManager@4ba13fed" #56 daemon prio=5 os_prio=0 tid=0x00000000226b9800 nid=0x7e4 in Object.wait() [0x00000000239ef000] "BoneCP-pool-watch-thread" #55 daemon prio=5 os_prio=0 tid=0x00000000226bc800 nid=0x19fc waiting on condition [0x00000000238ef000] "BoneCP-max-alive-scheduler" #54 daemon prio=5 os_prio=0 tid=0x00000000226b9000 nid=0x158 waiting on condition [0x00000000235ee000] "BoneCP-keep-alive-scheduler" #53 daemon prio=5 os_prio=0 tid=0x00000000226bc000 nid=0xdf0 waiting on condition [0x000000002093e000] "play-internal-execution-context-1" #49 daemon prio=5 os_prio=0 tid=0x00000000226bb000 nid=0xa6c waiting on condition [0x000000002666e000] "Timer-1" #44 prio=5 os_prio=0 tid=0x000000001e0ce800 nid=0x14b8 in Object.wait() [0x00000000258df000] "Timer-0" #43 prio=5 os_prio=0 tid=0x000000001e0cf000 nid=0x1880 in Object.wait() [0x00000000257de000] "play-akka.actor.default-dispatcher-4" #42 prio=5 os_prio=0 tid=0x000000001e0cd800 nid=0x18a8 waiting on condition [0x00000000256df000] "play-akka.actor.default-dispatcher-3" #41 prio=5 os_prio=0 tid=0x000000001e0cd000 nid=0xeb8 waiting on condition [0x00000000253de000] "play-akka.actor.default-dispatcher-2" #40 prio=5 os_prio=0 tid=0x000000001e0c9000 nid=0xcd0 waiting on condition [0x0000000024def000] "play-scheduler-1" #39 prio=5 os_prio=0 tid=0x000000001e0c9800 nid=0xfa8 waiting on condition [0x0000000024cee000] "Monitor Ctrl-Break" #11 daemon prio=5 os_prio=0 tid=0x000000001be38800 nid=0x172c runnable [0x000000001c9be000] "Service Thread" #10 daemon prio=9 os_prio=0 tid=0x000000001bd32000 nid=0x68c runnable [0x0000000000000000] "C1 CompilerThread3" #9 daemon prio=9 os_prio=2 tid=0x000000001bcaa800 nid=0x1bcc waiting on condition [0x0000000000000000] "C2 CompilerThread2" #8 daemon prio=9 os_prio=2 tid=0x000000001bca2800 nid=0x14f0 waiting on condition [0x0000000000000000] "C2 CompilerThread1" #7 daemon prio=9 os_prio=2 tid=0x000000001bc9e000 nid=0x15a0 waiting on condition [0x0000000000000000] "C2 CompilerThread0" #6 daemon prio=9 os_prio=2 tid=0x000000001bc9c000 nid=0x1bf0 waiting on condition [0x0000000000000000] "Attach Listener" #5 daemon prio=5 os_prio=2 tid=0x000000001bc9a800 nid=0x1a44 runnable [0x0000000000000000] "Signal Dispatcher" #4 daemon prio=9 os_prio=2 tid=0x000000001bc99000 nid=0x398 waiting on condition [0x0000000000000000] "Finalizer" #3 daemon prio=8 os_prio=1 tid=0x000000000291a000 nid=0x10e0 in Object.wait() [0x000000001bc4e000] "Reference Handler" #2 daemon prio=10 os_prio=2 tid=0x0000000002916800 nid=0x10d0 in Object.wait() [0x000000001bb4f000] "main" #1 prio=5 os_prio=0 tid=0x00000000026de800 nid=0x1580 waiting on condition [0x000000000281c000] "VM Thread" os_prio=2 tid=0x0000000019c68800 nid=0x16f4 runnable "GC task thread#0 (ParallelGC)" os_prio=0 tid=0x000000000283e000 nid=0x1934 runnable "GC task thread#1 (ParallelGC)" os_prio=0 tid=0x000000000283f800 nid=0x1abc runnable "GC task thread#2 (ParallelGC)" os_prio=0 tid=0x0000000002841000 nid=0x440 runnable "GC task thread#3 (ParallelGC)" os_prio=0 tid=0x0000000002842800 nid=0x14e4 runnable "GC task thread#4 (ParallelGC)" os_prio=0 tid=0x0000000002845000 nid=0x1328 runnable "GC task thread#5 (ParallelGC)" os_prio=0 tid=0x0000000002846000 nid=0x1068 runnable "GC task thread#6 (ParallelGC)" os_prio=0 tid=0x0000000002849000 nid=0x19cc runnable "GC task thread#7 (ParallelGC)" os_prio=0 tid=0x000000000284a800 nid=0x784 runnable "VM Periodic Task Thread" os_prio=2 tid=0x000000001bd3b800 nid=0x18bc waiting on condition JNI global references: 299 Heap |
This fix will be included in Play 2.3.1. In the meantime you need to make sure that you only run one test at a time. |
Hi!
Followup of this discussion: https://groups.google.com/forum/#!topic/play-framework/NTG3y0-sicM
Here is thread dump: https://gist.github.com/bjoernhaeuser/ed455f507c3b22a860c3
Java:
Scala Version ist 2.10.4 and sbt 0.13.5.
Thanks
Björn
The text was updated successfully, but these errors were encountered: