-
Bug
-
Resolution: Done
-
Major
-
10.1.1.Final, 11.0.0.Alpha1
-
None
-
DataGrid Sprint #42
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