yifan-c commented on a change in pull request #891:
URL: https://github.com/apache/cassandra/pull/891#discussion_r573475975
##########
File path: src/java/org/apache/cassandra/db/filter/ColumnFilter.java
##########
@@ -505,8 +505,8 @@ public ColumnFilter deserialize(DataInputPlus in, int
version, CFMetaData metada
}
}
- // See CASSANDRA-15833
- if (version <= MessagingService.VERSION_3014 && isFetchAll)
+ // See CASSANDRA-15833, CASSANDRA-16415
+ if (isFetchAll && Gossiper.instance.isAnyNodeOn30())
Review comment:
Please correct me if wrong.
`Gossiper.instance.isAnyNodeOn30()` is probably not the best approach. Even
there is only one node on 30, with messaging version either VERSION_30 or
VERSION_3014, makes the entire cluster to discard the recorded `queried` set.
The condition can be
```suggestion
if (isFetchAll && version < MessagingService.VERSION_3014)
```
With the condition,
1. If the coordinator runs on `VERSION_30`, so `version == VERSION_30`. The
replicas set `queried` to null when deserializing.
2. If the coordinator runs on `VERSION_3014+`, and some of the replicas run
in `VERSION_30`. The serialization code should take care of it.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]