[
https://issues.apache.org/jira/browse/CASSANDRA-12811?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15899789#comment-15899789
]
Alex Petrov commented on CASSANDRA-12811:
-----------------------------------------
The problem turned out to be as follows (quite tricky and seems like a complete
coincidence of different things that went wrong):
* {{DELETE}} that fails uses a special syntax: it uses {{(clustering) =
(?)}}, note the brackets around the clustering and a question mark. This means
that it wasn't a single column, but rather a multiple column condition (at
least that's how it's currently handled internally)
* {{flush}} is controlled and things are either flushed together or queried
from the memtable together. Viewing the logs revealed that there's a flush
happening in parallel (might be coinciding with a flush during the parallel run
on a CI, which made it so hard to reproduce.
* because of both of these conditions, we end up querying data from sstables
and range tombstones (!!) from memtable. Memtable queries for range tombstones
are currently not working, since we're not querying deletions at all
[here|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/db/filter/ClusteringIndexNamesFilter.java#L139]
which in turn calls [search
iterator|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/db/partitions/AbstractBTreePartition.java#L134],
which, unlike the [unfiltered
iterator|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/db/partitions/AbstractBTreePartition.java#L191-L195]
doesn't query deletion info at all.
Patch is on under way, but it might be worth to discuss both the issue with
parallel flushes (might be we should use unique names for keyspaces to avoid
unintended flushes?), and "fake" multi-column relationships.
> testall failure in
> org.apache.cassandra.cql3.validation.operations.DeleteTest.testDeleteWithOneClusteringColumns-compression
> ----------------------------------------------------------------------------------------------------------------------------
>
> Key: CASSANDRA-12811
> URL: https://issues.apache.org/jira/browse/CASSANDRA-12811
> Project: Cassandra
> Issue Type: Bug
> Reporter: Sean McCarthy
> Assignee: Alex Petrov
> Labels: test-failure
>
> example failure:
> http://cassci.datastax.com/job/cassandra-3.X_testall/34/testReport/org.apache.cassandra.cql3.validation.operations/DeleteTest/testDeleteWithOneClusteringColumns_compression/
> {code}
> Error Message
> Expected empty result but got 1 rows
> {code}
> {code}
> Stacktrace
> junit.framework.AssertionFailedError: Expected empty result but got 1 rows
> at org.apache.cassandra.cql3.CQLTester.assertEmpty(CQLTester.java:1089)
> at
> org.apache.cassandra.cql3.validation.operations.DeleteTest.testDeleteWithOneClusteringColumns(DeleteTest.java:463)
> at
> org.apache.cassandra.cql3.validation.operations.DeleteTest.testDeleteWithOneClusteringColumns(DeleteTest.java:427)
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)