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

Play framework deadlock issue #1505

Closed
ghost opened this issue Aug 20, 2013 · 1 comment
Closed

Play framework deadlock issue #1505

ghost opened this issue Aug 20, 2013 · 1 comment

Comments

@ghost
Copy link

ghost commented Aug 20, 2013

Hi All,

I am getting the following thread trace in the play application server when it keeps running for a long time (say one day). it hangs indefinitely and doesn't process any new request. I have to restart the server for that.

Following is the excerpt from the thread trace taken using jstack.

Please let me know why is it occuring and what is the resolution. This is very critical to our project.

"New I/O worker #1" prio=10 tid=0x00007f7254681000 nid=0x6cda waiting for monitor entry [0x00007f72506fd000]
java.lang.Thread.State: BLOCKED (on object monitor)
at play.core.ReloadableApplication.get(ApplicationProvider.scala:103)
- waiting to lock <0x00000000a839d460> (a play.core.ReloadableApplication)
at play.core.server.Server$class.sendHandler$1(Server.scala:56)
at play.core.server.Server$$anonfun$getHandlerFor$4.apply(Server.scala:88)
at play.core.server.Server$$anonfun$getHandlerFor$4.apply(Server.scala:87)
at scala.util.Either$RightProjection.flatMap(Either.scala:523)
at play.core.server.Server$class.getHandlerFor(Server.scala:87)
at play.core.server.NettyServer.getHandlerFor(NettyServer.scala:35)
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$7.apply(PlayDefaultUpstreamHandler.scala:112)
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$7.apply(PlayDefaultUpstreamHandler.scala:112)
at scala.util.Either.fold(Either.scala:98)
at play.core.server.netty.PlayDefaultUpstreamHandler.messageReceived(PlayDefaultUpstreamHandler.scala:106)
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:560)
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:787)
at com.typesafe.netty.http.pipelining.HttpPipeliningHandler.messageReceived(HttpPipeliningHandler.java:64)
at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:88)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:560)
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:787)
at org.jboss.netty.handler.codec.http.HttpContentDecoder.messageReceived(HttpContentDecoder.java:108)
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:560)
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:787)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:459)
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:536)
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:435)
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:560)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:555)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:107)
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:88)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:636)

@jroper
Copy link
Member

jroper commented Aug 23, 2013

You're running the application in dev mode. Don't do that in production. See here for docs:

http://www.playframework.com/documentation/2.1.x/Production

In future if you have questions, please ask them on the mailing list, the issue tracker is just for bugs.

@jroper jroper closed this as completed Aug 23, 2013
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