Details
-
Bug
-
Status: Resolved
-
Critical
-
Resolution: Won't Fix
-
1.0.0-incubating, 1.1.0, 1.1.1, 1.2.0, 1.2.1, 1.3.0, 1.4.0
-
None
-
None
Description
Geode cache became inconsistent in case if networking and serialization problems occur at commit time. How to reproduce:
- create any simple replicated region
- run two nodes
- put some value in the region (within a transaction or not)
- execute query on both nodes to check that the same value is returned (I used JMX for that)
- emulate somehow temporary networking or serialization error (throw IOException from toData() or use clumsy to emulate network interruption)
- repeat 3, exception should occur
- repeat 4 - you should see different values on different nodes
It looks like errors occurred after TXState.applyChanges produce inconsistency - it is impossible to rollback applied local changes what leads to the state where local cache contains changed data but other node(s) old data (before changes made in transaction).
To me, consistency is a key property for the systems like Geode so I would consider this bug as a critical one.