[ https://issues.apache.org/jira/browse/GEODE-8477?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17198425#comment-17198425 ]
Ernest Burghardt commented on GEODE-8477: ----------------------------------------- [~burcham] do we have a failing test that shows this issue? > getMembersNotShuttingDown() doesn't use consistent set of shutdown members > -------------------------------------------------------------------------- > > Key: GEODE-8477 > URL: https://issues.apache.org/jira/browse/GEODE-8477 > Project: Geode > Issue Type: Bug > Components: membership > Affects Versions: 1.12.0, 1.13.0, 1.14.0 > Reporter: Bill Burcham > Priority: Major > > {{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()}}. -- This message was sent by Atlassian Jira (v8.3.4#803005)