Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
When we introduced RVV, we put an assertion to disallow recordVersion to be a higher local version. i.e. the local version should be increased by local member, not from remote (such as GII).
But we forgot to enforce this assertion for persistent region only.
The reason is: If in persist region, the operation increased local version and persist it first before sending out distribution. And it will recover from disk. So there's no reason for a persistent region to get a higher local version from remote (such as GII).
But this is not the case for non-persistent region.
If we have a non-persistent region with concurrencyCheckEnabled, memberA initiated an operation and distributed to remote. The remote member keeps memberA's region version as 1. If we destroy and recreate region on memberA, it cannot recover from disk. The only way to get RVV back is through GII from remote. So we have to allow updating region version 1 for memberA into memberA's empty RVV.
Attachments
Issue Links
- links to