cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aleksey Yeschenko (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-15176) Fix PagingState deserialization when the state was serialized using protocol version different from current session's
Date Thu, 20 Jun 2019 15:10:01 GMT

    [ https://issues.apache.org/jira/browse/CASSANDRA-15176?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16868607#comment-16868607
] 

Aleksey Yeschenko commented on CASSANDRA-15176:
-----------------------------------------------

3.0 branch [here|https://github.com/iamaleksey/cassandra/commits/15176-3.0], others upcoming.

> Fix PagingState deserialization when the state was serialized using protocol version
different from current session's
> ---------------------------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-15176
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-15176
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Messaging/Client
>            Reporter: Aleksey Yeschenko
>            Assignee: Aleksey Yeschenko
>            Priority: Normal
>
> 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.
> This is obviously sub-optimal, but also avoidable. This JIRA fixes one half of the problem:
3.0 failing to deserialize 'mislabeled' paging states. We can do this by inspecting the byte
buffer to verify if it's been indeed serialized with the protocol version used by the session,
and if not, use the other method of deserialization.
> It should be noted that we list this as a 'known limitation' somewhere, but really this
is an upgrade-blocking bug for some users of C*.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org


Mime
View raw message