Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
1.12.0, 1.13.0, 1.14.0
-
None
-
None
Description
GMSMembership.getMembersNotShuttingDown() correctly accesses latestView under the protection of the read lock latestViewReadLock associated with the read-write lock latestViewLock ✓
However that method also accesses the shutdownMembers collection, a (Bounded)LinkedHashMap. That class does not provide concurrency protection. Furthermore shutdownMembers is not read/written consistently under the protection of any synchronization ✕
The result is that in this method, shutdownMembers may be corrupt and its contents may be arbitrarily stale.
One solution is to put all reads and writes of shutdownMembers under the protection of the same read-write lock as latestView. If we do this we can eliminate existing synchronization on shutdownMembers in shutdownMessageReceived().
Attachments
Issue Links
- is related to
-
GEODE-8385 hang recovering from disk with cyclic dependencies
- Closed