Radim Vansa created ISPN-7638:
---------------------------------
Summary: Observing non-final values on backup owner
Key: ISPN-7638
URL:
https://issues.jboss.org/browse/ISPN-7638
Project: Infinispan
Issue Type: Bug
Components: Core
Reporter: Radim Vansa
Assignee: Radim Vansa
Regardless of storing command invocations, reading value on backup owner in non-tx cache
can always lead to publishing value that should not ever been in the cache:
1. initial value is A
2. T1 calls replace A -> B, backup stores this value, primary is delayed
3. T2 reads value B
4. T3 puts C, currently blocked at primary
5. topology change, both T1 and T3 have to retry
6. T3 retries and updates both primary and backup
7. T1 retries and returns false, because the current value is C, not A
Therefore, B should have never been stored in the cache but it was observed there.
Recording the operation T1 on primary cannot help, because we would be in a similar
situation if primary crashed and we had two backups - the backup that becomes primary
might not have received the operation at all.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)