Details
-
Bug
-
Resolution: Done
-
Major
-
10.1.1.Final, 11.0.0.Alpha1
-
None
-
DataGrid Sprint #42
Description
If an operation is discarded during state transfer because it was already modified locally, the QueryInterceptor still propagates it to the index, leaving the index out of sync.
Sequence of events:
- T1: State Transfer starts
- T2: The EWI (EntryWrappingInterceptor) starts tracking all non-state-transfer operations
- T3: An entry is added locally
- T4: EWI stores the key
- T5: The same key arrives from State Transfer
- T6: QueryInterceptor indexes it (The QI is installed after EWI but indexing happens before storing the entry in the data container)
- T7: The entry operation is not committed in the data container since it was tracked before as DiscardPolicy {discardStateTransfer=true, discardXSiteStateTransfer=false}
- T8: The index and the data container differ, since the index applied the state transfer operation when the data container didn't