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

Aleksey Pesternikov updated CASSANDRA-5089:
-------------------------------------------

    Attachment: 5089unittest.diff

test attached.
Please note that you need -ea JVM command line flag to reveal the problem, 
without -ea it works fine.
I think the problem is in Bounds.java:45 assert statement:

        assert left.compareTo(right) <= 0 || right.isMinimum(partitioner) : "[" 
+ left + "," + right + "]";

 Why left is even compared to right? Why "bounds may not wrap" as it stated in 
the comment? Logically, "less" and "more" are irrelevant to iterator position 
as we are talking about RING.
                
> get_range_slices is broken
> --------------------------
>
>                 Key: CASSANDRA-5089
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5089
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 1.1.7
>            Reporter: Aleksey Pesternikov
>            Assignee: Jonathan Ellis
>            Priority: Trivial
>             Fix For: 1.2.1
>
>         Attachments: 5089.txt, 5089unittest.diff, 5089-v2.txt
>
>
> get_range_slices times out, java log has the following exception:
> ERROR [Thrift:1] 2012-12-22 08:14:30,120 AbstractCassandraDaemon.java (line 
> 135) Exception in thread Thread[Thrift:1,5,main]
> java.lang.AssertionError: [DecoratedKey(28555413689034504124051437792156504, 
> 6434313866653035643631663962323635323937343337653666636265616162),max(0)]
>         at org.apache.cassandra.dht.Bounds.<init>(Bounds.java:45)
>         at org.apache.cassandra.dht.Bounds.<init>(Bounds.java:38)
>         at 
> org.apache.cassandra.thrift.CassandraServer.get_range_slices(CassandraServer.java:698)
>         at 
> org.apache.cassandra.thrift.Cassandra$Processor$get_range_slices.getResult(Cassandra.java:3083)
>         at 
> org.apache.cassandra.thrift.Cassandra$Processor$get_range_slices.getResult(Cassandra.java:3071)
>         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:186)
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
>         at java.lang.Thread.run(Thread.java:722)
> We see it every time on the SECOND get_range_slices call when we clear 
> start_token and set start_key in the key range.
> We noticed this in 1.1.7 first, 1.1.8 still affected. 1.1.6 is fine.
> Please contact me if you need more information.
>  

--
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