o.a.c.dht.Range.differenceToFetch() doesn't handle all cases correctly
----------------------------------------------------------------------

                 Key: CASSANDRA-3084
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3084
             Project: Cassandra
          Issue Type: Bug
          Components: Core
    Affects Versions: 0.8.4
            Reporter: Tyler Hobbs


It's possible that differenceToFetch is making implicit assumptions about the 
relationship between the two ranges, but the following cases are not handled 
correctly (the old range is (A, B], the new is (C, D]:

{noformat}
--C--A-----B--D--
{noformat}

Here, the result will be (C, A] and (D, B], instead of (C, A] and (B, D].

{noformat}
--C--A-----D--B--
{noformat}

The result will be (C, D] instead of just (C, A].

{noformat}
--A--C-----D--B--
{noformat}

The result will be (B, D] when nothing needs to be transfered.

If there is some kind of implicit assumption that these cases won't arise, it 
either needs to be explicit (assertions, exceptions) or the cases need to be 
handled.  It should be easy to cover this with unit tests.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to