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

Stian Thorgersen (JIRA) jira-events at lists.jboss.org
Wed Mar 21 14:02:48 EDT 2012


    [ https://issues.jboss.org/browse/RF-12013?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12678421#comment-12678421 ] 

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

       



More information about the richfaces-issues mailing list