Uploaded image for project: 'Geode'
  1. Geode
  2. GEODE-8477

getMembersNotShuttingDown() doesn't use consistent set of shutdown members

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 1.12.0, 1.13.0, 1.14.0
    • None
    • membership
    • 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

          Activity

            People

              Unassigned Unassigned
              burcham Bill Burcham
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated: