[jboss-remoting-issues] [JBoss JIRA] (JBREM-1297) Deadlock between MicroRemoteClientInvoker.establishLease and Client.notifyListeners

Ron Sigal (Resolved) (JIRA) jira-events at lists.jboss.org
Tue Jan 3 22:02:10 EST 2012


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

Ron Sigal resolved JBREM-1297.
------------------------------

    Resolution: Done


Hi Justin,

Sorry about the delay.  I ran the test suite again last week, and, despite some anomalies, I don't see anything that would seem to be related to this issue, so I'm closing it.

-Ron
                
> Deadlock between MicroRemoteClientInvoker.establishLease and Client.notifyListeners
> -----------------------------------------------------------------------------------
>
>                 Key: JBREM-1297
>                 URL: https://issues.jboss.org/browse/JBREM-1297
>             Project: JBoss Remoting
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>    Affects Versions: 2.2.4, 2.5.4.SP3
>            Reporter: Artur Karpinski
>            Assignee: Ron Sigal
>            Priority: Critical
>             Fix For: 2.2.4.SP1, 2.5.4.SP4
>
>         Attachments: jboss-remoting.jar
>
>
> Deadlock is probably caused by changes introduced in this fix: JBREM-1242.
> Thread A:
> 1. MicroRemoteClientInvoker.terminateLease, locks clientLeaseLock
> 2. Client.notifyListeners, locks connectionValidatorLock
> Thread B:
> 1. Client.setupClientLease, locks connectionValidatorLock
> 2. MicroRemoteClientInvoker.establishLease, locks connectionValidatorLock
> Please check stacktraces when this deadlock occurred:
> {code}
> "Timer-16" - Thread t at 486453
>    java.lang.Thread.State: BLOCKED
> 	at org.jboss.remoting.Client.notifyListeners(Client.java:1873)
> 	- waiting to lock <747c39d3> (a java.lang.Object) owned by "WorkManager(2)-241" t at 6121
> 	at org.jboss.remoting.LeasePinger.stopPing(LeasePinger.java:134)
> 	at org.jboss.remoting.MicroRemoteClientInvoker.terminateLease(MicroRemoteClientInvoker.java:434)
> 	- locked <751714e> (a java.lang.Object)
> 	at org.jboss.remoting.ConnectionValidator$WaitOnConnectionCheckTimerTask.run(ConnectionValidator.java:1081)
> 	at java.util.TimerThread.mainLoop(Timer.java:512)
> 	at java.util.TimerThread.run(Timer.java:462)
> {code}
> and
> {code}
> "WorkManager(2)-241" - Thread t at 6121
>    java.lang.Thread.State: BLOCKED
> 	at org.jboss.remoting.MicroRemoteClientInvoker.establishLease(MicroRemoteClientInvoker.java:507)
> 	- waiting to lock <751714e> (a java.lang.Object) owned by "Timer-16" t at 486453
> 	at org.jboss.remoting.Client.setupClientLease(Client.java:2056)
> 	- locked <747c39d3> (a java.lang.Object)
> 	at org.jboss.remoting.Client.connect(Client.java:1918)
> 	at org.jboss.remoting.Client.connect(Client.java:737)
> {code}
> One way to fix this would be to add lock on connectionValidatorLock in MicroRemoteClientInvoker.terminateLease. I'm trying to analyse code to check if this fix will not introduce another deadlock problem.

--
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 jboss-remoting-issues mailing list