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

Sylvain Lebresne updated CASSANDRA-4621:
----------------------------------------

    Attachment: 4621.txt

Pretty sure this has nothing to do with CQL. But the trace shows a token that 
is negative, which should not happen. So my guess is that it's because the new 
Murmur3Partitioner can generate negative token while it shouldn't. Patch 
attached to fix (there was 2 places where a negative could be generated, one 
was because the special case of Long.MIN_VALUE wasn't handled, the other was 
that we weren't taking the absolute value at all for random token. Both should 
be fixed though this is probably the latter that produced the error here since 
it's way more likely to happen).
                
> AssertionError in StorageProxy.getRestrictedRange
> -------------------------------------------------
>
>                 Key: CASSANDRA-4621
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4621
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 1.2.0 beta 1
>         Environment: archlinux, openjdk7
>            Reporter: Pierre-Yves Ritschard
>            Assignee: Sylvain Lebresne
>             Fix For: 1.2.0 beta 1
>
>         Attachments: 4621.txt
>
>
> On a freshly built cassandra from trunk, I can create a column family with a 
> composite row key using the syntax:
> for instance a standard eventlog CF:
>      CREATE TABLE events (
>        facility text,
>        prio int,
>        message text,
>        PRIMARY KEY ( (facility, prio) )
>      );
> A simple query will then generate exceptions:
> SELECT * FROM events; will yield:
> ERROR 15:33:40,383 Exception in thread Thread[Thrift:1,5,main]
> java.lang.AssertionError: [min(0),max(-8021625467324731134)]
>       at org.apache.cassandra.dht.Bounds.<init>(Bounds.java:41)
>       at org.apache.cassandra.dht.Bounds.split(Bounds.java:59)
>       at 
> org.apache.cassandra.service.StorageProxy.getRestrictedRanges(StorageProxy.java:1073)
>       at 
> org.apache.cassandra.service.StorageProxy.getRangeSlice(StorageProxy.java:879)
>       at 
> org.apache.cassandra.cql3.statements.SelectStatement.multiRangeSlice(SelectStatement.java:209)
>       at 
> org.apache.cassandra.cql3.statements.SelectStatement.executeInternal(SelectStatement.java:128)
>       at 
> org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:118)
>       at 
> org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:62)
>       at 
> org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:107)
>       at 
> org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:115)
>       at 
> org.apache.cassandra.thrift.CassandraServer.execute_cql_query(CassandraServer.java:1521)
>       at 
> org.apache.cassandra.thrift.Cassandra$Processor$execute_cql_query.getResult(Cassandra.java:3618)
>       at 
> org.apache.cassandra.thrift.Cassandra$Processor$execute_cql_query.getResult(Cassandra.java:3606)
>       at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:32)
>       at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:34)
>       at 
> org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:184)
>       at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
>       at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>       at java.lang.Thread.run(Unknown Source)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to