[
https://issues.jboss.org/browse/RF-12013?page=com.atlassian.jira.plugin.s...
]
Stian Thorgersen commented on RF-12013:
---------------------------------------
Thanks for the fix, I've built it from GIT and will use that on my dev box.
Other than this issue, the push component is mostly working, except for another issue
I've recently discovered. I'm loosing events if they are fired between the model
is updated and the page is viewed. See
https://issues.jboss.org/browse/RF-12072. I'm
currently using TopicsContext to publish messages, I tried to use CDI events to see if
that made any difference but got an exception with "Service Tracker has not been
initialized".
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