[ 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: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org