Sam Tunnicliffe created CASSANDRA-15193:
-------------------------------------------
Summary: Add ability to cap max negotiable protocol version
Key: CASSANDRA-15193
URL: https://issues.apache.org/jira/browse/CASSANDRA-15193
Project: Cassandra
Issue Type: Bug
Components: Messaging/Client
Reporter: Sam Tunnicliffe
Assignee: Sam Tunnicliffe
3.0 and native protocol V4 introduced a change to how PagingState is
serialized. Unfortunately that can break requests during upgrades: since paging
states are opaque, it's possible for a client to receive a paging state encoded
as V3 on a 2.1 node, and then send it to a 3.0 node on a V4 session. The
version of the current session will be used to deserialize the paging state,
instead of the actual version used to serialize it, and the request will fail.
CASSANDRA-15176 solves half of this problem by enabling 3.0 nodes to serialize
mis-versioned PagingStates. To address the other side of the issue, 2.1 nodes
receiving V4 PagingStates, we can introduce a property to cap the max native
protocol version that the 3.0 nodes will negotiate with clients. If we cap this
to V3 during upgrades, no V4 connections will be established and so no
incompatible PagingStates will be sent to clients.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]