-
Bug
-
Resolution: Done
-
Critical
-
7.0.0.Alpha1
-
None
Distributed transactional cache.
1) Coordinator is gracefully leaving the cluster, sends a REBALANCE_START with topologyId 14, ST begins.
2) Node receives chunk from segment X, writes entry K=V to the container.
3) New coordinator jumps in with CH_UPDATE topology 16
4) Node receives CANCEL_STATE_TRANSFER and cancels transfer of segment X, invalidating K. In CommitManager, this operation is tracked and DiscardPolicy is set to DISCARD_STATE_TRANSFER for key K.
5) New coordinator starts rebalance with topology 17
6) Node starts new ST for segment X
7) Node receives the X: K=V, but in CommitManager it finds out that the policy is set to DISCARD_STATE_TRANSFER and ignores this update.
Result: entry value is lost on some node.