[
https://issues.jboss.org/browse/RF-12899?page=com.atlassian.jira.plugin.s...
]
Brian Leathem reassigned RF-12899:
----------------------------------
Assignee: Lukáš Fryč
Lukas, please assess and schedule as you find appropriate.
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č
Our application freezes occasionally. We used Jstack and have seen the deadlock below. It
seems to be very simillar to RF12013, 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