Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.8
-
None
-
None
Description
In current design it is possible that the same key-value pair will be stored with different versions on primary and backup nodes. For example, a read-through is invoked separately on primary backup and values are stored with node local version.
With this precondition, if an optimistic serializable transaction is started from a backup node, the serializable check version is read from backup, but validated on primary node, which will fail the transaction with optimistic read/write conflict exception until the versions are overwritten to the same value (for example, via a pessimistic transaction).
While we need to additionally investigate whether we want to change the read-through logic to ensure the same value and version on all nodes, this particular scenario should be fixed by always enforcing reading from a primary node inside an optimistic serializable transaction.
The reproducer is attached. A known workaround is to disable read load balancing by setting "-DIGNITE_READ_LOAD_BALANCING=false" system property.
Attachments
Attachments
Issue Links
- links to