[ 
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)

Reply via email to