[ https://issues.apache.org/jira/browse/CASSANDRA-15059?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16823408#comment-16823408 ]
Ariel Weisberg edited comment on CASSANDRA-15059 at 4/22/19 8:19 PM: --------------------------------------------------------------------- Great! {{quarantineEndpoint}} and {{replacementQuarantine}} are private, but maybe check there as well? I don't feel strongly about it, but it's slightly safer when they are called indirectly. {{assissinateEndpoint}} asserts on the thread inside the lambda for run in Gossip stage. Harmless, but is it too much? {{notifyFailureDetector}} seems like it could tolerate having this assertion since it is called from VerbHandlers in the gossip stage? was (Author: aweisberg): Great! {{quarantineEndpoint}} and {{replacementQuarantine}} are private, but maybe check there as well? I don't feel strongly about it, but it's slightly safer when they are called indirectly. {{assissinateEndpoint}} asserts on the thread inside the lambda for run in Gossip stage. Harmless, but it is it too much? {{notifyFailureDetector}} seems like it could tolerate having this assertion since it is called from VerbHandlers in the gossip stage? > Gossiper#markAlive can race with Gossiper#markDead > -------------------------------------------------- > > Key: CASSANDRA-15059 > URL: https://issues.apache.org/jira/browse/CASSANDRA-15059 > Project: Cassandra > Issue Type: Bug > Components: Cluster/Gossip > Reporter: Blake Eggleston > Assignee: Blake Eggleston > Priority: Normal > > 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. -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org