Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-15059

Gossiper#markAlive can race with Gossiper#markDead

    XMLWordPrintableJSON

    Details

    • Bug Category:
      Degradation - Other Exception
    • Severity:
      Normal
    • Complexity:
      Normal
    • Discovered By:
      User Report
    • Since Version:
    • Test and Documentation Plan:
      Hide

      circleci runs looks good

      Show
      circleci runs looks good

      Description

      The Gossiper class is not threadsafe and assumes all state changes happen in a single thread (the gossip stage). Gossiper#convict, however, can be called from the GossipTasks thread. This creates a race where calls to Gossiper#markAlive and Gossiper#markDead can interleave, corrupting gossip state. Gossiper#assassinateEndpoint has a similar problem, being called from the mbean server thread.

        Attachments

          Activity

            People

            • Assignee:
              bdeggleston Blake Eggleston
              Reporter:
              bdeggleston Blake Eggleston
              Authors:
              Blake Eggleston
              Reviewers:
              Ariel Weisberg
            • Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: