Bug 1155688

Summary: Conditional Operation can fail erroneously during ST
Product: [JBoss] JBoss Data Grid 6 Reporter: Dan Berindei <dberinde>
Component: InfinispanAssignee: Dan Berindei <dberinde>
Status: CLOSED CURRENTRELEASE QA Contact: Martin Gencur <mgencur>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.4.0CC: jdg-bugs, slaskawi, vjuranek
Target Milestone: ER3   
Target Release: 6.4.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-01-28 13:28:04 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Dan Berindei 2014-10-22 15:55:21 UTC
Currently the retry logic for commands is to only throw a OutdatedTopologyException when a command is successful.

This however can have the following issue.

k1 owned by N1, N2

1. N3 updates k1 sending conditional command to N1
2. N1 receives command and starts running it (passes topology block)
3. ST occurs causing N1 to no longer be an owner and removes k1 from it's data container.
4. N1 runs optional command and it fails and thus doesn't throw OutdatedTopologyException
5. N3 gets response that command failed, but it could have worked had it gone to a real owner.

Comment 2 Sebastian Ɓaskawiec 2014-10-24 11:50:40 UTC
PR: https://github.com/infinispan/jdg/pull/303