[
https://issues.apache.org/jira/browse/CASSANDRA-16759?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17369317#comment-17369317
]
Yifan Cai commented on CASSANDRA-16759:
---------------------------------------
The analysis makes sense. Thanks [~jmeredithco].
In the following scenarios, the STATUS field can be absent onJoin.
1. {{hasMajorVersion3Nodes()}} that is called in {{Gossiper#applyStateLocally}}
improperly returns false. It happens when gossiper is just started and there is
no known peers. [This
commit|https://github.com/apache/cassandra/commit/195e7d2f9c7a5cbe935f3f7cd38f975f0f48276d]
fixes it. But the change also brings up a concern that in a single node
cluster (that runs 4.0), {{hasMajorVersion3Nodes()}} always returns true.
2. In the tests with more than 2 nodes, it is possible the gossip state is
received via a third 4.0 node that has removed the STATUS field of its peer
already.
So the change to the {{onJoin}} is necessary. Beside correcting the order to
handle STATUS* first then the others, a node also avoids double handling the
redundant STATUS* fields received. Instead, it only handles either STATUS or
STATUS_WITH_PORT.
> Avoid memoizing the wrong min cluster version during upgrades
> -------------------------------------------------------------
>
> Key: CASSANDRA-16759
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16759
> Project: Cassandra
> Issue Type: Bug
> Components: Consistency/Coordination
> Reporter: Marcus Eriksson
> Assignee: Marcus Eriksson
> Priority: Normal
> Fix For: 4.0-rc2
>
>
> CASSANDRA-16525 avoids trying to calculate the cluster min version if
> gossiper is not enabled.
> This makes us memoize the wrong version for up to a minute causing us to send
> 4.0-messages to 3.0 nodes, for example in
> [ColumnFilter|https://github.com/apache/cassandra/blob/05beda90a9206db165a3997a736ecb06f8dc695e/src/java/org/apache/cassandra/db/filter/ColumnFilter.java#L210]
> This was discovered by python upgrade dtests,
> [here|https://app.circleci.com/pipelines/github/ekaterinadimitrova2/cassandra/993/workflows/2afef6f0-1356-41f6-93dc-5385ac19dca1/jobs/5977/tests#failed-test-0]
> after reverting CASSANDRA-15899 in CASSANDRA-16735
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]