[
https://issues.apache.org/jira/browse/CASSANDRA-13880?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Aleksey Yeschenko updated CASSANDRA-13880:
------------------------------------------
Resolution: Fixed
Fix Version/s: (was: 3.11.x)
(was: 3.0.x)
3.11.1
3.0.15
Status: Resolved (was: Patch Available)
> Fix short read protection for tables with no clustering columns
> ---------------------------------------------------------------
>
> Key: CASSANDRA-13880
> URL: https://issues.apache.org/jira/browse/CASSANDRA-13880
> Project: Cassandra
> Issue Type: Bug
> Components: Coordination
> Reporter: Aleksey Yeschenko
> Assignee: Aleksey Yeschenko
> Fix For: 3.0.15, 3.11.1
>
>
> CASSANDRA-12872 fixed counting replica rows, so that we do now fetch more
> than one extra row if necessary.
> Fixing the issue caused consistency_test.py:TestConsistency.test_13747 to
> start failing, by exposing a bug in the way we handle empty clusterings.
> When {{moreContents()}} asks for another row and {{lastClustering}} is
> {{EMPTY}}, the response again (and again) contains the row with {{EMPTY}}
> clustering.
> SRP assumes it’s a new row, counts it as one, gets confused and keeps asking
> for more, in a loop, again and again.
> Arguably, a response to a read command with the following non-inclusive
> {{ClusteringIndexFilter}}:
> {code}
> command.clusteringIndexFilter(partitionKey).forPaging(metadata.comparator,
> Clustering.EMPTY, false);
> {code}
> ... should return nothing at all rather than a row with an empty clustering.
> Also arguably, SRP should not even attempt to fetch more rows if
> {{lastClustering == Clustering.EMPTY}}. In a partition key only column
> we shouldn’t expect any more rows.
> This JIRA is to fix the latter issue on SRP side - to modify SRP logic to
> short-circuit execution if {{lastClustering}} was an {{EMPTY}} one instead of
> querying pointlessly for non-existent extra rows.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]