[richfaces-issues] [JBoss JIRA] (RF-12899) Deadlock appears in push component
Lukáš Fryč (JIRA)
jira-events at lists.jboss.org
Tue Jun 25 05:02:21 EDT 2013
[ https://issues.jboss.org/browse/RF-12899?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12784241#comment-12784241 ]
Lukáš Fryč commented on RF-12899:
---------------------------------
Let's incubate a fix in {{5.0.0.Alpha2}} and apply it back to {{4.3.3}}.
> Deadlock appears in push component
> ----------------------------------
>
> Key: RF-12899
> URL: https://issues.jboss.org/browse/RF-12899
> Project: RichFaces
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: component-push/poll
> Affects Versions: 4.2.2.Final
> Reporter: Jiří Mikulášek
> Assignee: Lukáš Fryč
> Fix For: 5.0.0.Alpha2
>
>
> Our application freezes occasionally. We used Jstack and have seen the deadlock below. It seems to be very simillar to RF-12013, but the stack is slightly different
> Found one Java-level deadlock:
> =============================
> {code}
> "localhost-startStop-2":
> waiting to lock monitor 0x000000000782a368 (object 0x000000078da957e0, a org.richfaces.application.push.impl.SessionImpl),
> which is held by "http-nio-30085-exec-4"
> "http-nio-30085-exec-4":
> waiting to lock monitor 0x00000000085cbe00 (object 0x000000078e8ecf90, a org.atmosphere.cpr.AtmosphereResourceImpl),
> which is held by "Atmosphere-AsyncWrite-0"
> "Atmosphere-AsyncWrite-0":
> waiting to lock monitor 0x000000000782a368 (object 0x000000078da957e0, a org.richfaces.application.push.impl.SessionImpl),
> which is held by "http-nio-30085-exec-4"
> {code}
> Java stack information for the threads listed above:
> ===================================================
> {code}
> "localhost-startStop-2":
> at org.richfaces.application.push.impl.SessionImpl.disconnect(SessionImpl.java:117)
> - waiting to lock <0x000000078da957e0> (a org.richfaces.application.push.impl.SessionImpl)
> at org.richfaces.application.push.impl.RequestImpl.disconnect(RequestImpl.java:128)
> at org.richfaces.application.push.impl.RequestImpl.onResume(RequestImpl.java:136)
> at org.atmosphere.cpr.AtmosphereResourceImpl.onResume(AtmosphereResourceImpl.java:658)
> at org.atmosphere.cpr.AtmosphereResourceImpl.notifyListeners(AtmosphereResourceImpl.java:607)
> at org.atmosphere.cpr.AtmosphereResourceImpl.notifyListeners(AtmosphereResourceImpl.java:591)
> at org.atmosphere.cpr.AtmosphereResourceImpl.resume(AtmosphereResourceImpl.java:187)
> - locked <0x000000078e8b64a8> (a org.atmosphere.cpr.AtmosphereResourceImpl)
> at org.atmosphere.cpr.DefaultBroadcaster.resumeAll(DefaultBroadcaster.java:300)
> - locked <0x000000078e8d1ac8> (a java.util.concurrent.ConcurrentLinkedQueue)
> at org.atmosphere.cpr.DefaultBroadcasterFactory.destroy(DefaultBroadcasterFactory.java:274)
> - locked <0x000000078cb112d8> (a org.atmosphere.cpr.DefaultBroadcasterFactory)
> at org.atmosphere.cpr.AtmosphereServlet.destroy(AtmosphereServlet.java:867)
> at org.atmosphere.cpr.MeteorServlet.destroy(MeteorServlet.java:88)
> at org.apache.catalina.core.StandardWrapper.unload(StandardWrapper.java:1481)
> - locked <0x0000000784b6a168> (a org.apache.catalina.core.StandardWrapper)
> at org.apache.catalina.core.StandardWrapper.stopInternal(StandardWrapper.java:1842)
> - locked <0x0000000784b6a168> (a org.apache.catalina.core.StandardWrapper)
> at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
> - locked <0x0000000784b6a168> (a org.apache.catalina.core.StandardWrapper)
> at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5471)
> - locked <0x000000078312e828> (a org.apache.catalina.core.StandardContext)
> at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
> - locked <0x000000078312e828> (a org.apache.catalina.core.StandardContext)
> at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1575)
> at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1564)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
> at java.lang.Thread.run(Thread.java:662)
> "http-nio-30085-exec-4":
> at org.atmosphere.cpr.AtmosphereResourceImpl.resume(AtmosphereResourceImpl.java:168)
> - waiting to lock <0x000000078e8ecf90> (a org.atmosphere.cpr.AtmosphereResourceImpl)
> at org.atmosphere.cpr.Meteor.resume(Meteor.java:240)
> at org.richfaces.application.push.impl.RequestImpl.resume(RequestImpl.java:71)
> at org.richfaces.application.push.impl.SessionImpl.releaseRequest(SessionImpl.java:112)
> at org.richfaces.application.push.impl.SessionImpl.connect(SessionImpl.java:85)
> - locked <0x000000078da957e0> (a org.richfaces.application.push.impl.SessionImpl)
> at org.richfaces.application.push.impl.RequestImpl.onSuspend(RequestImpl.java:119)
> at org.atmosphere.cpr.AtmosphereResourceImpl.onSuspend(AtmosphereResourceImpl.java:652)
> at org.atmosphere.cpr.AtmosphereResourceImpl.notifyListeners(AtmosphereResourceImpl.java:611)
> at org.atmosphere.cpr.AtmosphereResourceImpl.notifyListeners(AtmosphereResourceImpl.java:591)
> at org.atmosphere.cpr.AtmosphereResourceImpl.suspend(AtmosphereResourceImpl.java:347)
> at org.atmosphere.cpr.Meteor.suspend(Meteor.java:213)
> at org.richfaces.application.push.impl.RequestImpl.suspend(RequestImpl.java:67)
> at org.richfaces.webapp.PushHandlerFilter.doFilter(PushHandlerFilter.java:107)
> at org.atmosphere.util.AtmosphereFilterChain.doFilter(AtmosphereFilterChain.java:139)
> at org.atmosphere.util.AtmosphereFilterChain.invokeFilterChain(AtmosphereFilterChain.java:116)
> at org.atmosphere.handler.ReflectorServletProcessor$FilterChainServletWrapper.service(ReflectorServletProcessor.java:293)
> at org.atmosphere.handler.ReflectorServletProcessor.onRequest(ReflectorServletProcessor.java:151)
> at org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java:219)
> at org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.java:154)
> at org.atmosphere.container.Tomcat7CometSupport.service(Tomcat7CometSupport.java:85)
> at org.atmosphere.cpr.AtmosphereServlet.doCometSupport(AtmosphereServlet.java:1218)
> at org.atmosphere.cpr.AtmosphereServlet.event(AtmosphereServlet.java:1286)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilterEvent(ApplicationFilterChain.java:484)
> at org.apache.catalina.core.ApplicationFilterChain.doFilterEvent(ApplicationFilterChain.java:377)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
> at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
> at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
> at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1686)
> - locked <0x000000078e7fcc28> (a org.apache.tomcat.util.net.NioChannel)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
> at java.lang.Thread.run(Thread.java:662)
> "Atmosphere-AsyncWrite-0":
> at org.richfaces.application.push.impl.SessionImpl.disconnect(SessionImpl.java:117)
> - waiting to lock <0x000000078da957e0> (a org.richfaces.application.push.impl.SessionImpl)
> at org.richfaces.application.push.impl.RequestImpl.disconnect(RequestImpl.java:128)
> at org.richfaces.application.push.impl.RequestImpl.onDisconnect(RequestImpl.java:140)
> at org.atmosphere.cpr.AtmosphereResourceImpl.onDisconnect(AtmosphereResourceImpl.java:664)
> at org.atmosphere.cpr.AtmosphereResourceImpl.notifyListeners(AtmosphereResourceImpl.java:609)
> at org.atmosphere.cpr.AtmosphereResourceImpl.notifyListeners(AtmosphereResourceImpl.java:591)
> at org.atmosphere.cpr.DefaultBroadcaster.executeAsyncWrite(DefaultBroadcaster.java:719)
> at org.atmosphere.cpr.DefaultBroadcaster$3.run(DefaultBroadcaster.java:749)
> - locked <0x000000078e8ecf90> (a org.atmosphere.cpr.AtmosphereResourceImpl)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
> at java.lang.Thread.run(Thread.java:662)
> {code}
> Found 1 deadlock.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the richfaces-issues
mailing list