[
https://issues.jboss.org/browse/ISPN-4444?page=com.atlassian.jira.plugin....
]
Pedro Ruivo commented on ISPN-4444:
-----------------------------------
[~dan.berindei] I checked the code and I found out that it is checking the DataContainer
even without check if it is an owner or not. This solves the issue when L1 is disabled.
However, when L1 is enabled, it can fetch the stale value while the invalidation is in
progress. If I understand correctly, we want to avoid this case, right?
After state transfer, a node is able to read keys it no longer owns
from its data container
-------------------------------------------------------------------------------------------
Key: ISPN-4444
URL:
https://issues.jboss.org/browse/ISPN-4444
Project: Infinispan
Issue Type: Bug
Components: Core, State Transfer
Affects Versions: 7.0.0.Alpha4
Reporter: Dan Berindei
Assignee: Pedro Ruivo
Priority: Critical
Fix For: 7.1.0.Alpha1
When state transfer ends and each node receives a CH_UPDATE command from the coordinator,
it first installs the new topology and then it starts invalidating entries it no longer
owns.
However, there are two cases when the node can still read its stale values:
1. If L1 is enabled, it will look in the local DataContainer first, regardless of the
key's location.
2. If L1 is disabled, but the key was removed on the new owners, the node will still look
up the key in the local DataContainer after receiving a null response.
The problem can be reproduced with {{TxReadAfterLosingOwnershipTest}} and its subclasses,
by replacing the {{operation.update(cache(1));}} line with {{operation.update(cache(0));}}
--
This message was sent by Atlassian JIRA
(v6.3.8#6338)