cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sam Tunnicliffe (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CASSANDRA-13149) AssertionError prepending to a list
Date Tue, 19 Sep 2017 12:30:01 GMT

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

Sam Tunnicliffe updated CASSANDRA-13149:
----------------------------------------
    Status: In Progress  (was: Patch Available)

Mostly the changes look good. I do think though that we need to handle the case where the
list of elements to prepend > {{MAX_NANOS}} better than just throwing an assertion error
(obviously not a good idea to do it, but it is allowed). 

This is probably more contentious, but there's also some potential for misuse here as nothing
currently stops us overflowing the range of the PT instance except the construction of the
for loop. We could make PT.nanos private and add a {{getNanosPlusDelta(int)}} instance method
that  asserts that we don't try to use more that were originally allocated.

Nits: 
* typo Lists line #290 {{miilisToUse}}
* typo ListsTest line #65 {{_Mulitple}}
* in other fixtures where we've used the snake case name format, the names tend to have the
{{test}} prefix ({{BufferPoolTest/BTreeTest/SegmentedFileTest/etc}}, only {{RepariMessageSerializationsTest}}
deviates from that pattern currently).


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


Mime
View raw message