]
Tristan Tarrant updated ISPN-10041:
-----------------------------------
Fix Version/s: 10.0.0.Beta4
(was: 10.0.0.Beta3)
Locking interceptor should check the topology before acquiring locks
--------------------------------------------------------------------
Key: ISPN-10041
URL:
https://issues.jboss.org/browse/ISPN-10041
Project: Infinispan
Issue Type: Bug
Components: Core
Affects Versions: 8.2.11.Final, 9.3.6.Final, 10.0.0.Beta2, 9.4.9.Final
Reporter: Dan Berindei
Assignee: Dan Berindei
Priority: Major
Fix For: 10.0.0.Beta4
The distribution interceptors check the command topology is the same as the current
topology before sending a command to remote nodes, but the locking interceptors do not
have any check.
On a remote node, this means the inbound invocation handler acquires some locks in
topology {{T}}, then the locking interceptor acquires other locks in topology {{T+1}}, and
finally the distribution interceptor throws {{OutdatedTopologyException}} and releases the
locks. In older versions there is also a potential for blocking a remote executor thread
while waiting for the lock, but luckily that is not a problem in 9.4+. It would be more
efficient if the locking interceptor was throwing {{OutdatedTopologyException}} instead.