[
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
Attaching patch that:
* Don't force positive tokens in Murmur3Partitioner (thus using all the bits of
the LongToken).
* Exclude Long.MIN_VALUE from the possible tokens of a key (since it's now the
MINIMUM token).
I note that this means tokens can be negative and that we'll have to update a
number of documentation relating to computing tokens. Though this was already
the case before this patch (but maybe to a slightly lesser extend). And
hopefully vnodes will make (manual) token computations a thing of the past.
> 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, 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