[
https://issues.apache.org/jira/browse/CASSANDRA-13149?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16173977#comment-16173977
]
Jason Brown commented on CASSANDRA-13149:
-----------------------------------------
Pushed a few updates to the branches.
bq. handle the case where the list of elements to prepend > {{MAX_NANOS}}
Done, even though a client would be rather bananas to prepare 10,000 elements
to the beginning of list! Also, added test for that.
bq. nothing currently stops us overflowing the range of the PT instance except
the construction of the for loop
I tried turning the "range" represented by the instance returned by
{{PrecisionTime#getNext()}} into something like an interator, as wel basically
want to iterate/walk the value represented by the range. It quickly started to
feel like it was over-engineered. While there is this "tied-at-the-hip"
relationship between {{Prepender}} and {{PrecisionTime}}, I'm not sure that
additional guards won't feel similiarly out of place. wdyt?
Tests and other nits have been addressed,as well.
> AssertionError prepending to a list
> -----------------------------------
>
> Key: CASSANDRA-13149
> URL: https://issues.apache.org/jira/browse/CASSANDRA-13149
> Project: Cassandra
> Issue Type: Bug
> Components: CQL
> Environment: 3.0.8
> Reporter: Steven Warren
> Assignee: Jason Brown
>
> Prepending to a list produces the following AssertionError randomly. Changing
> the update to append (and sort in the client) works around the issue.
> {code}
> java.lang.AssertionError: null
> at
> org.apache.cassandra.cql3.Lists$PrecisionTime.getNext(Lists.java:275)
> ~[apache-cassandra-3.0.8.jar:3.0.8]
> at org.apache.cassandra.cql3.Lists$Prepender.execute(Lists.java:430)
> ~[apache-cassandra-3.0.8.jar:3.0.8]
> at
> org.apache.cassandra.cql3.statements.UpdateStatement.addUpdateForKey(UpdateStatement.java:94)
> ~[apache-cassandra-3.0.8.jar:3.0.8]
> at
> org.apache.cassandra.cql3.statements.ModificationStatement.addUpdates(ModificationStatement.java:682)
> ~[apache-cassandra-3.0.8.jar:3.0.8]
> at
> org.apache.cassandra.cql3.statements.ModificationStatement.getMutations(ModificationStatement.java:613)
> ~[apache-cassandra-3.0.8.jar:3.0.8]
> at
> org.apache.cassandra.cql3.statements.ModificationStatement.executeWithoutCondition(ModificationStatement.java:420)
> ~[apache-cassandra-3.0.8.jar:3.0.8]
> at
> org.apache.cassandra.cql3.statements.ModificationStatement.execute(ModificationStatement.java:408)
> ~[apache-cassandra-3.0.8.jar:3.0.8]
> at
> org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:206)
> ~[apache-cassandra-3.0.8.jar:3.0.8]
> at
> org.apache.cassandra.cql3.QueryProcessor.processPrepared(QueryProcessor.java:487)
> ~[apache-cassandra-3.0.8.jar:3.0.8]
> at
> org.apache.cassandra.cql3.QueryProcessor.processPrepared(QueryProcessor.java:464)
> ~[apache-cassandra-3.0.8.jar:3.0.8]
> at
> org.apache.cassandra.transport.messages.ExecuteMessage.execute(ExecuteMessage.java:130)
> ~[apache-cassandra-3.0.8.jar:3.0.8]
> at
> org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:507)
> [apache-cassandra-3.0.8.jar:3.0.8]
> at
> org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:401)
> [apache-cassandra-3.0.8.jar:3.0.8]
> 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(Executors.java:511)
> [na:1.8.0_101]
> at
> org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:164)
> [apache-cassandra-3.0.8.jar:3.0.8]
> at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105)
> [apache-cassandra-3.0.8.jar:3.0.8]
> at java.lang.Thread.run(Thread.java:745) [na:1.8.0_101]
> {code}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]