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]

Reply via email to