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

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

    Attachment: 0001-Fix-scan-issue.patch

Actually, after having committed it, I realize there is a few issue with the 
previous patch. Two mostly:
# If the extraFilter query finds nothing (which it will only in case of the 
race between write and reads), getColumnFamily() will return null and the 
data.addAll() will NPE
# For 0.8 and for counters, we must make really sure that this extra query 
won't add column that were returned by the first query (which can happen in the 
current code), otherwise we'll overcount. I think this is actually a bug that 
predate the fix for this.

Anyway, attaching 0001-Fix-scan-issue that fixes both of those issue. It also 
add a slight optimization that avoids doing extra work if we know an extra 
query won't help.

> 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.7.6, 0.8.0 beta 2
>            Reporter: Jonathan Ellis
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>             Fix For: 0.7.7, 0.8.2
>
>         Attachments: 0001-Fix-scan-issue.patch, 
> 0001-Handle-data-get-returning-null-in-secondary-indexes.patch, 
> 0001-Handle-null-returns-in-data-index-query-v0.7.patch, 
> 0001-Reset-SSTII-in-EchoedRow-constructor.patch, 2653_v2.patch, 
> 2653_v3.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

        

Reply via email to