[ https://issues.apache.org/jira/browse/CASSANDRA-19007?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Caleb Rackliffe updated CASSANDRA-19007: ---------------------------------------- Fix Version/s: (was: 5.0.x) > Queries with multi-column replica-side filtering can miss rows > -------------------------------------------------------------- > > Key: CASSANDRA-19007 > URL: https://issues.apache.org/jira/browse/CASSANDRA-19007 > Project: Cassandra > Issue Type: Bug > Components: Consistency/Coordination > Reporter: Andres de la Peña > Assignee: Caleb Rackliffe > Priority: Normal > Fix For: 5.x > > Time Spent: 10m > Remaining Estimate: 0h > > {{SELECT}} queries with multi-column replica-side filtering can miss rows if > the filtered columns are spread across out-of-sync replicas. This dtest > reproduces the issue: > {code:java} > @Test > public void testMultiColumnReplicaSideFiltering() throws IOException > { > try (Cluster cluster = init(Cluster.build().withNodes(2).start())) > { > cluster.schemaChange(withKeyspace("CREATE TABLE %s.t (k int PRIMARY > KEY, a int, b int)")); > // insert a split row > cluster.get(1).executeInternal(withKeyspace("INSERT INTO %s.t(k, a) > VALUES (0, 1)")); > cluster.get(2).executeInternal(withKeyspace("INSERT INTO %s.t(k, b) > VALUES (0, 2)")); > String select = withKeyspace("SELECT * FROM %s.t WHERE a = 1 AND b = > 2 ALLOW FILTERING"); > Object[][] initialRows = cluster.coordinator(1).execute(select, ALL); > assertRows(initialRows, row(0, 1, 2)); // not found!! > } > } > {code} > This edge case affects queries using {{ALLOW FILTERING}} or any index > implementation. > It affects all branches since multi-column replica-side filtering queries > were introduced, long before 3.0. > The protection mechanism added by CASSANDRA-8272/8273 won't deal with this > case, since it only solves single-column conflicts where stale rows could > resurrect. This bug however doesn't resurrect data, it can only miss rows > while the replicas are out-of-sync. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org