[jira] [Updated] (CASSANDRA-15176) Fix PagingState deserialization when the state was serialized using protocol version different from current session's
[ 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
[jira] [Updated] (CASSANDRA-15176) Fix PagingState deserialization when the state was serialized using protocol version different from current session's
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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