You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Sylvain Lebresne (JIRA)" <ji...@apache.org> on 2011/06/22 14:30:47 UTC

[jira] [Updated] (CASSANDRA-2653) index scan errors out when zero columns are requested

     [ https://issues.apache.org/jira/browse/CASSANDRA-2653?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sylvain Lebresne updated CASSANDRA-2653:
----------------------------------------

    Attachment: 0001-Handle-data-get-returning-null-in-secondary-indexes.patch

The "Tyler" problem is actually not limited to 0 column query. The problem is that when we query the rows for data, we use whatever filter the user provided (there's a number of optimiziation in the case we have more than 1 clause but that doesn't really matter for our problem). The thing is, there is no guarantee that whatever that filter is, it will include the column of the primary clause (having a column count of 0 is just one case where we're sure it won't include it). Thus the assertion that something will be returned is bogus.

Attaching a patch (against 0.8) to fix. Note that this mean we have no way to assert the sanity of the index during a read, unless we force the querying of the primary index clause, but this will have a performance impact (and a non negligible one in cases this would force us to do a new query just for that).


> index scan errors out when zero columns are requested
> -----------------------------------------------------
>
>                 Key: CASSANDRA-2653
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2653
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.8.0 beta 2
>            Reporter: Jonathan Ellis
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>             Fix For: 0.8.1
>
>         Attachments: 0001-Handle-data-get-returning-null-in-secondary-indexes.patch, 0001-Reset-SSTII-in-EchoedRow-constructor.patch, v1-0001-CASSANDRA-2653-reproduce-regression.txt
>
>
> As reported by Tyler Hobbs as an addendum to CASSANDRA-2401,
> {noformat}
> ERROR 16:13:38,864 Fatal exception in thread Thread[ReadStage:16,5,main]
> java.lang.AssertionError: No data found for SliceQueryFilter(start=java.nio.HeapByteBuffer[pos=10 lim=10 cap=30], finish=java.nio.HeapByteBuffer[pos=17 lim=17 cap=30], reversed=false, count=0] in DecoratedKey(81509516161424251288255223397843705139, 6b657931):QueryPath(columnFamilyName='cf', superColumnName='null', columnName='null') (original filter SliceQueryFilter(start=java.nio.HeapByteBuffer[pos=10 lim=10 cap=30], finish=java.nio.HeapByteBuffer[pos=17 lim=17 cap=30], reversed=false, count=0]) from expression 'cf.626972746864617465 EQ 1'
> 	at org.apache.cassandra.db.ColumnFamilyStore.scan(ColumnFamilyStore.java:1517)
> 	at org.apache.cassandra.service.IndexScanVerbHandler.doVerb(IndexScanVerbHandler.java:42)
> 	at org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:72)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:662)
> {noformat}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira