[
https://issues.apache.org/jira/browse/CASSANDRA-9659?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14654428#comment-14654428
]
Tyler Hobbs commented on CASSANDRA-9659:
----------------------------------------
I believe that somewhere in the documentation (maybe the native protocol spec?)
we state that the paging state can only be used for identical queries, but
that's not strictly enforced. To do that, we would need to save the query or
query ID in the paging state for later validation.
A simpler fix that would catch this case in particular is something like this:
in {{SelectStatement.getRangeCommand()}}, check
{{keyBounds.contains(options.getPagingState().partitionKey)}}. If it doesn't,
throw an {{InvalidRequestException}} with a good message.
> ServerErrorException: java.lang.AssertionError
> ----------------------------------------------
>
> Key: CASSANDRA-9659
> URL: https://issues.apache.org/jira/browse/CASSANDRA-9659
> Project: Cassandra
> Issue Type: Bug
> Environment: CentOS 6.5
> Cassandra 2.1.3
> Reporter: Dave Decicco
> Assignee: Benjamin Lerer
> Fix For: 2.1.x
>
> Attachments: CqlProxyInvocationHandler sets PagingState AFTER 1st
> company call for results.PNG, Multiple companyid IN clause with secondary
> index failure.PNG, rawmessage column family.PNG, trackingdevice column
> family.PNG
>
>
> An issue exists where a java.lang.AssertionError occurs for a select number
> of read queries from Cassandra within our application.
> It was suggested that a ticket be created to see if the error below is the
> same as CASSANDRA-8949 which was fixed in version 2.1.5.
> Here is a portion of the Cassandra log file where the exception occurs:
> {code}
> INFO [MemtableFlushWriter:50153] 2015-06-23 13:11:17,517 Memtable.java:385 -
> Completed flushing; nothing needed to be retained. Commitlog position was
> ReplayPosition(segmentId=1425054853780, position=8886361)
> ERROR [SharedPool-Worker-1] 2015-06-23 13:11:29,047 Message.java:538 -
> Unexpected exception during request; channel = [id: 0x8f1ca59e,
> /10.30.43.68:33717 => /10.30.43.146:9042]javaa.lang.AssertionError:
> [DecoratedKey(5747358200379796162,
> 64623465383566662d653235382d343130352d616131612d346230396635353965666364),DecoratedKey(3303996443194009861,
> 34623632646562322d626234332d346661642d613263312d356334613233633037353932)]
> at org.apache.cassandra.dht.Bounds.<init>(Bounds.java:41)
> ~[apache-cassandra-2.1.3.jar:2.1.3]
> at org.apache.cassandra.dht.Bounds.<init>(Bounds.java:34)
> ~[apache-cassandra-2.1.3.jar:2.1.3]
> at
> org.apache.cassandra.service.pager.RangeSliceQueryPager.makeIncludingKeyBounds(RangeSliceQueryPager.java:123)
> ~[apache-cassandra-2.1.3.jar:2.1.3]
> at
> org.apache.cassandra.service.pager.RangeSliceQueryPager.queryNextPage(RangeSliceQueryPager.java:74)
> ~[apache-cassandra-2.1.3.jar:2.1.3]
> at
> org.apache.cassandra.service.pager.AbstractQueryPager.fetchPage(AbstractQueryPager.java:87)
> ~[apache-cassandra-2.1.3.jar:2.1.3]
> at
> org.apache.cassandra.service.pager.RangeSliceQueryPager.fetchPage(RangeSliceQueryPager.java:37)
> ~[apache-cassandra-2.1.3.jar:2.1.3]
> at
> org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:219)
> ~[apache-cassandra-2.1.3.jar:2.1.3]
> at
> org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:62)
> ~[apache-cassandra-2.1.3.jar:2.1.3]
> at
> org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:238)
> ~[apache-cassandra-2.1.3.jar:2.1.3]
> at
> org.apache.cassandra.cql3.QueryProcessor.processPrepared(QueryProcessor.java:493)
> ~[apache-cassandra-2.1.3.jar:2.1.3]
> at
> org.apache.cassandra.transport.messages.ExecuteMessage.execute(ExecuteMessage.java:134)
> ~[apache-cassandra-2.1.3.jar:2.1.3]
> at
> org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:439)
> [apache-cassandra-2.1.3.jar:2.1.3]
> at
> org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:335)
> [apache-cassandra-2.1.3.jar:2.1.3]
> at
> io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
> [netty-all-4.0.23.Final.jar:4.0.23.Final]
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333)
> [netty-all-4.0.23.Final.jar:4.0.23.Final]
> at
> io.netty.channel.AbstractChannelHandlerContext.access$700(AbstractChannelHandlerContext.java:32)
> [netty-all-4.0.23.Final.jar:4.0.23.Final]
> at
> io.netty.channel.AbstractChannelHandlerContext$8.run(AbstractChannelHandlerContext.java:324)
> [netty-all-4.0.23.Final.jar:4.0.23.Final]
> at java.util.concurrent.Executors$RunnableAdapter.call(Unknown
> Source) [na:1.7.0_76]
> at
> org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164)
> [apache-cassandra-2.1.3.jar:2.1.3]
> at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105)
> [apache-cassandra-2.1.3.jar:2.1.3]
> at java.lang.Thread.run(Unknown Source) [na:1.7.0_76]
> INFO [BatchlogTasks:1] 2015-06-23 13:12:17,521 ColumnFamilyStore.java:877 -
> Enqueuing flush of batchlog: 27641 (0%) on-heap, 0 (0%) off-heap
> INFO [MemtableFlushWriter:50154] 2015-06-23 13:12:17,522 Memtable.java:339 -
> Writing Memtable-batchlog@297832842(22529 serialized bytes, 40 ops, 0%/0% of
> on/off-heap limit)
> INFO [MemtableFlushWriter:50154] 2015-06-23 13:12:17,523 Memtable.java:385 -
> Completed flushing; nothing needed to be retained. Commitlog position was
> ReplayPosition(segmentId=1425054853780, position=8948299)
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)