[
https://issues.jboss.org/browse/ISPN-6051?page=com.atlassian.jira.plugin....
]
William Burns commented on ISPN-6051:
-------------------------------------
Unfortunately we can't create the command in the DataContainer lock on a non owner
node as this would cause a deadlock issue.
If we do this in the data container compute and another concurrent write occurs on the
same key the primary will send a write command to the backup owner and then it will never
be able to acquire the data container lock. And the remote node will not be able to
acquire the Infinispan lock on the primary node for that key.
Unfortunately this can't be fixed this way.
ClusterExpirationManager missing locking
----------------------------------------
Key: ISPN-6051
URL:
https://issues.jboss.org/browse/ISPN-6051
Project: Infinispan
Issue Type: Bug
Components: Core
Affects Versions: 8.1.0.Final
Reporter: Dan Berindei
Assignee: William Burns
Fix For: 8.2.0.CR1
Because {{ClusterExpirationManager.handleLifespanExpired()}} doesn't lock the entry
and the value is actually read in the async thread, the created {{RemoveExpiredCommand}}
sometimes uses a newer value written by another thread.
Could be fixed by using {{DataContainer.compute()}} to check expiration and create the
{{RemoveExpirationCommand}}.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)