[jira] [Updated] (CASSANDRA-15176) Fix PagingState deserialization when the state was serialized using protocol version different from current session's

2019-06-26 Thread Aleksey Yeschenko (JIRA)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-15176?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aleksey Yeschenko updated CASSANDRA-15176:
--
  Fix Version/s: 4.0
 3.11.5
 3.0.19
Source Control Link: 
[dad82fbd30c8b87c4c9fa02abc6796ba8c2bf99a|https://github.com/apache/cassandra/commit/dad82fbd30c8b87c4c9fa02abc6796ba8c2bf99a]
  Since Version: 3.0.0
 Status: Resolved  (was: Ready to Commit)
 Resolution: Fixed

Cheers, committed to 3.0 as 
[dad82fbd30c8b87c4c9fa02abc6796ba8c2bf99a|https://github.com/apache/cassandra/commit/dad82fbd30c8b87c4c9fa02abc6796ba8c2bf99a]
 and merged with 3.11 and trunk.

> 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
> Fix For: 3.0.19, 3.11.5, 4.0
>
>
> 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-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-15176) Fix PagingState deserialization when the state was serialized using protocol version different from current session's

2019-06-26 Thread Sam Tunnicliffe (JIRA)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-15176?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sam Tunnicliffe updated CASSANDRA-15176:

Status: Ready to Commit  (was: Review In Progress)

+1

> 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-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-15176) Fix PagingState deserialization when the state was serialized using protocol version different from current session's

2019-06-20 Thread Sam Tunnicliffe (JIRA)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-15176?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sam Tunnicliffe updated CASSANDRA-15176:

Discovered By: New Unit Test  (was: Code Inspection)

> 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-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-15176) Fix PagingState deserialization when the state was serialized using protocol version different from current session's

2019-06-20 Thread Sam Tunnicliffe (JIRA)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-15176?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sam Tunnicliffe updated CASSANDRA-15176:

Discovered By: Code Inspection  (was: New Unit Test)

> 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-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-15176) Fix PagingState deserialization when the state was serialized using protocol version different from current session's

2019-06-20 Thread Aleksey Yeschenko (JIRA)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-15176?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aleksey Yeschenko updated CASSANDRA-15176:
--
Status: Review In Progress  (was: Patch Available)

> 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-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-15176) Fix PagingState deserialization when the state was serialized using protocol version different from current session's

2019-06-20 Thread Aleksey Yeschenko (JIRA)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-15176?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aleksey Yeschenko updated CASSANDRA-15176:
--
Reviewers: Blake Eggleston, Sam Tunnicliffe

> 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-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-15176) Fix PagingState deserialization when the state was serialized using protocol version different from current session's

2019-06-20 Thread Aleksey Yeschenko (JIRA)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-15176?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aleksey Yeschenko updated CASSANDRA-15176:
--
Test and Documentation Plan: Expanded unit test coverage
 Status: Patch Available  (was: Open)

> 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-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-15176) Fix PagingState deserialization when the state was serialized using protocol version different from current session's

2019-06-20 Thread Aleksey Yeschenko (JIRA)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-15176?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aleksey Yeschenko updated CASSANDRA-15176:
--
 Severity: Normal
   Complexity: Normal
Discovered By: New Unit Test
 Bug Category: Parent values: Availability(12983)Level 1 values: Response 
Crash(12991)
   Status: Open  (was: Triage Needed)

> 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-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org