[richfaces-issues] [JBoss JIRA] (RF-12899) Deadlock appears in push component

Brian Leathem (JIRA) jira-events at lists.jboss.org
Fri Sep 13 15:21:04 EDT 2013


     [ https://issues.jboss.org/browse/RF-12899?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Brian Leathem updated RF-12899:
-------------------------------

     Original Estimate: 2 hours
    Remaining Estimate: 2 hours

    
> 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
>
>   Original Estimate: 2 hours
>  Remaining Estimate: 2 hours
>
> 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