[
https://jira.jboss.org/browse/JBREM-1242?page=com.atlassian.jira.plugin.s...
]
Ron Sigal resolved JBREM-1242.
------------------------------
Resolution: Done
The fix is to synchronize the call in Client.setupClientLease() to
MicroRemoteClientInvoker.establishLease() on connectionValidatorLock:
synchronized(connectionValidatorLock)
{
invoker.establishLease(sessionId, temp, leasePeriod);
}
Now both sequences synchronize first on Client.connectionValidatorLock and then on
MicroRemoteClientInvoker.clientLeaseLock.
The fix has been applied to branches 2.2 and 2.x.
There is no specific unit test.
Fix deadlock between Client and MicroRemoteClientInvoker
--------------------------------------------------------
Key: JBREM-1242
URL:
https://jira.jboss.org/browse/JBREM-1242
Project: JBoss Remoting
Issue Type: Bug
Security Level: Public(Everyone can see)
Affects Versions: 2.5.3.SP1, 2.2.3.SP3
Reporter: Ron Sigal
Assignee: Ron Sigal
Fix For: 2.5.3.SP2, 2.2.3.SP4
1. a. org.jboss.remoting.Client.setupClientLease() calls
MicroRemoteClientInvoker.establishLease()
b. org.jboss.remoting.MicroRemoteClientInvoker.establishLease() synchronizes on
MicroRemoteClientInvoker.clientLeaseLock and calls Client.addConnectionListener()
c. Client.addConnectionListener() synchronizes on Client.connectionValidatorLock
2. a. Client.addConnectionListener() synchronizes on Client.connectionValidatorLock and
calls new ConnectionValidator()
b. new ConnectionValidator() calls MicroRemoteClientInvoker.getLeasePinger(), which
synchronizes on MicroRemoteClientInvoker.clientLeaseLock
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira