You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Alex Petrov (JIRA)" <ji...@apache.org> on 2017/03/07 17:12:38 UTC

[jira] [Commented] (CASSANDRA-12811) testall failure in org.apache.cassandra.cql3.validation.operations.DeleteTest.testDeleteWithOneClusteringColumns-compression

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