[infinispan-issues] [JBoss JIRA] (ISPN-4444) After state transfer, a node is able to read keys it no longer owns from its data container

Pedro Ruivo (JIRA) issues at jboss.org
Tue Nov 18 11:36:39 EST 2014


    [ https://issues.jboss.org/browse/ISPN-4444?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13020860#comment-13020860 ] 

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)


More information about the infinispan-issues mailing list