[
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