[
https://issues.apache.org/jira/browse/CASSANDRA-9462?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14580749#comment-14580749
]
Ariel Weisberg commented on CASSANDRA-9462:
-------------------------------------------
JIRA just ate my response which really really sucks.
IntervalTree for (0, 0), (1,1) search for IncludingExcludingBound (0,1) returns
a wrong answer. Benedict tried to fix it for SSTableIntervalTree by overriding
search. I then tried to make all the tests pass with that implementation which
lead to writing tests for the inconsistent (or maybe not, hard to tell)
implementation of methods inside AbstractBounds and Range, making them
consistent, and then fixing the fallout from that.
I am going to try again and see if I can just fix IntervalTree. I didn't expect
to spend a week getting the tests passing on the original fix, but it was
probably necessary anyways just to understand what is going on. AFAIK existing
code works around the inconsistencies and higher level modules have some tests
that maybe validate that they are using AbstractBounds and family correctly.
It's also possible the entire thing was a waste and we should just make
IntervalTree reject IncludingExcludingBounds? This is kind of why I want
someone with more context to review.
> ViewTest.sstableInBounds is failing
> -----------------------------------
>
> Key: CASSANDRA-9462
> URL: https://issues.apache.org/jira/browse/CASSANDRA-9462
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Reporter: Benedict
> Assignee: Ariel Weisberg
> Fix For: 3.x, 2.1.x, 2.2.x
>
>
> CASSANDRA-8568 introduced new tests to cover what was DataTracker
> functionality in 2.1, and is now covered by the lifecycle package. This
> particular test indicates this method does not fulfil the expected contract,
> namely that more sstables are returned than should be.
> However while looking into it I noticed it also likely has a bug (which I
> have not updated the test to cover) wherein a wrapped range will only yield
> the portion at the end of the token range, not the beginning. It looks like
> we may have call sites using this function that do not realise this, so it
> could be a serious bug, especially for repair.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)