[ https://issues.apache.org/jira/browse/CASSANDRA-19187?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17796891#comment-17796891 ]
Brandon Williams edited comment on CASSANDRA-19187 at 12/14/23 8:06 PM: ------------------------------------------------------------------------ [~curlylrt] that 4.0 link is for another ticket. I used the one you originally linked [here|https://github.com/apache/cassandra/pull/2978]. ||Branch||CI|| |[4.0|https://github.com/driftx/cassandra/tree/CASSANDRA-19187-4.0]|[j8|https://app.circleci.com/pipelines/github/driftx/cassandra/1416/workflows/2cafb3ad-057c-4fa4-a638-f8877912c60d], [j11|https://app.circleci.com/pipelines/github/driftx/cassandra/1416/workflows/d4e03537-c49e-4e2d-8910-156d23732321]| |[4.1|https://github.com/driftx/cassandra/tree/CASSANDRA-19187-4.1]|[j8|https://app.circleci.com/pipelines/github/driftx/cassandra/1414/workflows/a019c2cd-64b5-4b57-a554-5881de6fd3c7], [j11|https://app.circleci.com/pipelines/github/driftx/cassandra/1414/workflows/11889dfa-7d86-4fb7-a713-874dfc3a0552]| |[5.0|https://github.com/driftx/cassandra/tree/CASSANDRA-19187-5.0]|[j11|https://app.circleci.com/pipelines/github/driftx/cassandra/1415/workflows/821eb0bd-9af4-48a9-a50e-a9e1aab75a4e], [j17|https://app.circleci.com/pipelines/github/driftx/cassandra/1415/workflows/54d783aa-3fca-4531-9a80-6ab8b47472b2]| was (Author: brandon.williams): [~curlylrt] that 4.0 link is for another ticket. > nodetool assassinate may cause thread serialization for that node > ----------------------------------------------------------------- > > Key: CASSANDRA-19187 > URL: https://issues.apache.org/jira/browse/CASSANDRA-19187 > Project: Cassandra > Issue Type: Bug > Components: Cluster/Membership > Reporter: Runtian Liu > Assignee: Runtian Liu > Priority: Normal > Fix For: 4.0.x, 4.1.x, 5.0.x > > > When assassinate an ip address that is not in the gossip map, a "corrupted" > entry will be inserted into the gossip map. > [(1)|https://github.com/apache/cassandra/blob/cassandra-4.0/src/java/org/apache/cassandra/gms/Gossiper.java#L810] > For example, if we do "nodetool assassinate 10.1.1.1" > we will get an entry like below by running "nodetool gossipinfo": > > {code:java} > /10.1.1.1 > generation:1702006511 > heartbeat:9999 > STATUS:209516:LEFT,-8393921141401589197,1702265651923 > STATUS_WITH_PORT:209515:LEFT,-8393921141401589197,1702265651923 > TOKENS: not present {code} > > This entry in endpointStateMap will cause issue for > [isUpgradingFromVersionLowerThan|https://github.com/apache/cassandra/blob/cassandra-4.0/src/java/org/apache/cassandra/gms/Gossiper.java#L2284] > function. Because the > [upgradeFromVersionSupplier|https://github.com/apache/cassandra/blob/cassandra-4.0/src/java/org/apache/cassandra/gms/Gossiper.java#L191] > supplier will always set the > [allHostsHaveKnownVersion|https://github.com/apache/cassandra/blob/cassandra-4.0/src/java/org/apache/cassandra/gms/Gossiper.java#L216] > flag to false so no memoized value will be returned. The "get" function will > always require a lock from this > [line|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/utils/ExpiringMemoizingSupplier.java#L66]. > If application is using "fetchAll", the native-transport-requests thread will > hit this > [line|https://github.com/apache/cassandra/blob/cassandra-4.0/src/java/org/apache/cassandra/db/filter/ColumnFilter.java#L574]. > This means all the native-transport-requests thread is serialized, also, the > lock is shared by GossipStage threads. It means if a node in a cluster with > the corrupted gossip map is restart, the node will run into this problem. > To fix the issue, > # Why we want to add a dummy entry for nodetool assassinate if the endpoint > is not in the map anymore. Should we do nothing or throw exception if the > node is not in the gossip map anymore? > # Before checking if a version is null, we should make sure the node is not > a dead node. A decommissioned node, a left node should not be considered part > of the cluster anymore when calculating "upgradeInProgressPossible" > -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org