Jason Brown created CASSANDRA-11216:
---------------------------------------

             Summary: Range.compareTo() violates the contract of Comparable
                 Key: CASSANDRA-11216
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-11216
             Project: Cassandra
          Issue Type: Bug
          Components: Core
            Reporter: Jason Brown
            Assignee: Jason Brown
            Priority: Minor


When running some quick-check style tests, I discovered that if both of the 
ranges being compared wrap around, then the result of the comparison depends on 
which range is evaluated first. For example, two ranges:

A = { -1, 2 }
B = { -2, 1 }

and then compare them together:
A.compareTo(B) == -1
B.compareTo(A) == -1

This is because the logic of the existing {{Range.compareTo()}} simply checks 
to see if the {{this}} range wraps around, and returns -1. This bug does not 
appear to affect c* until 3.0, and then only in one place 
({{MerkleTrees.TokenRangeComparator#compare}}) that I could identify.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to