[
https://issues.jboss.org/browse/RF-12013?page=com.atlassian.jira.plugin.s...
]
Stian Thorgersen commented on RF-12013:
---------------------------------------
Tried to get the problem to happen, but no luck. So can't actually test the fix
properly.
Deadlock in push component
--------------------------
Key: RF-12013
URL:
https://issues.jboss.org/browse/RF-12013
Project: RichFaces
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: component-push/poll
Affects Versions: 4.2.0.Final
Reporter: Stian Thorgersen
Assignee: Lukáš Fryč
Fix For: 4.2.1.CR1
Deadlocked threads in the push component prevented server from stopping. Not sure whether
or not this happened when I initiated shutdown or if these where hanging around for a
while.
Relevant output from jstack:
{code}
Found one Java-level deadlock:
=============================
"push-publish-thread-1":
waiting to lock monitor 0x0000000042650238 (object 0x00000000e5ed5a50, a
org.richfaces.application.push.impl.RequestImpl),
which is held by "Atmosphere-AsyncWrite-0"
"Atmosphere-AsyncWrite-0":
waiting to lock monitor 0x00000000427d9ec0 (object 0x00000000e5ed59a0, a
org.richfaces.application.push.impl.SessionImpl),
which is held by "push-publish-thread-1"
Java stack information for the threads listed above:
===================================================
"push-publish-thread-1":
at org.richfaces.application.push.impl.RequestImpl.postMessages(RequestImpl.java:85)
- waiting to lock <0x00000000e5ed5a50> (a
org.richfaces.application.push.impl.RequestImpl)
at org.richfaces.application.push.impl.SessionImpl.push(SessionImpl.java:237)
- locked <0x00000000e5ed59a0> (a org.richfaces.application.push.impl.SessionImpl)
at
org.richfaces.application.push.impl.TopicImpl$TopicContext.publishMessages(TopicImpl.java:88)
at org.richfaces.application.push.impl.TopicImpl$PublishTask.run(TopicImpl.java:53)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
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:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
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 <0x00000000e5ed59a0> (a
org.richfaces.application.push.impl.SessionImpl)
at org.richfaces.application.push.impl.RequestImpl.disconnect(RequestImpl.java:107)
at org.richfaces.application.push.impl.RequestImpl.onResume(RequestImpl.java:115)
at org.atmosphere.cpr.AtmosphereResourceImpl.onResume(AtmosphereResourceImpl.java:651)
at
org.atmosphere.cpr.AtmosphereResourceImpl.notifyListeners(AtmosphereResourceImpl.java:600)
at
org.atmosphere.cpr.AtmosphereResourceImpl.notifyListeners(AtmosphereResourceImpl.java:584)
at org.atmosphere.cpr.AtmosphereResourceImpl.resume(AtmosphereResourceImpl.java:185)
- locked <0x00000000e5ee3380> (a org.atmosphere.cpr.AtmosphereResourceEventImpl)
at org.richfaces.application.push.impl.RequestImpl.onBroadcast(RequestImpl.java:129)
- locked <0x00000000e5ed5a50> (a org.richfaces.application.push.impl.RequestImpl)
at
org.atmosphere.cpr.AtmosphereResourceImpl.onBroadcast(AtmosphereResourceImpl.java:663)
at
org.atmosphere.cpr.AtmosphereResourceImpl.notifyListeners(AtmosphereResourceImpl.java:608)
at
org.atmosphere.cpr.AtmosphereResourceImpl.notifyListeners(AtmosphereResourceImpl.java:584)
at org.atmosphere.cpr.DefaultBroadcaster.executeAsyncWrite(DefaultBroadcaster.java:713)
at org.atmosphere.cpr.DefaultBroadcaster$3.run(DefaultBroadcaster.java:747)
- locked <0x00000000e5ed5a88> (a org.atmosphere.cpr.AtmosphereResourceImpl)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
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:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Found 1 deadlock.
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira