-
Bug
-
Resolution: Done
-
Major
-
9.2.0.Final
-
None
The current logic in PreferAvailabilityStrategy and PreferConsistencyStrategy assumes that when a split brain occurs, the two partitions will continue to operate independently before a merge occurs.
Consider a cluster {A,B} which partitions into P1 {A} and P2 {B}. P1 continues to operate and update cache entries, however P2 makes no progress (possibly down to a long GC pause). When P2 merges into P1, no conflict resolution occurs as the maxTopology contains all of the possible owners. Conflict resolution should be attempted in this scenario, as it's possible that entries have been put to P1 during the partition and therefore P2 will have stale values.
This can be reproduced by creating two nodes, pausing one process, wait for split and then resuming the process. No CR will occur.