[ https://issues.apache.org/jira/browse/CASSANDRA-9765?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14621826#comment-14621826 ]
Stefania commented on CASSANDRA-9765: ------------------------------------- The reason why {{!isFatClient()}} is false and doesn't trigger the exception is because the state is SHUTDOWN rather than one of the DEAD states (REMOVING, REMOVED, LEFT and HIBERNATE). It seems that we cannot determine if a SHUTDOWN node was a fat client and therefore isFatClient() should not check if shutdown nodes are members, since they aren't. For fear of breaking stuff I added a new method that excludes SHUTDOWN nodes and I called it isLiveFatClient(). I've attached patch for 2.0 and a dtest that clearly reproduces the problem with the existing 2.0 code. [~jbellis], please confirm you are happy with the fix in 2.0, we can always rollback CASSANDRA-7939 and only fix in later revisions. We also need a reviewer. > checkForEndpointCollision fails for legitimate collisions > --------------------------------------------------------- > > Key: CASSANDRA-9765 > URL: https://issues.apache.org/jira/browse/CASSANDRA-9765 > Project: Cassandra > Issue Type: Bug > Components: Core > Reporter: Richard Low > Assignee: Stefania > Fix For: 2.0.17 > > > Since CASSANDRA-7939, checkForEndpointCollision no longer catches a > legitimate collision. Without CASSANDRA-7939, wiping a node and starting it > again fails with 'A node with address %s already exists', but with it the > node happily enters joining state, potentially streaming from the wrong place > and violating consistency. -- This message was sent by Atlassian JIRA (v6.3.4#6332)