cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ariel Weisberg (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-9462) ViewTest.sstableInBounds is failing
Date Wed, 10 Jun 2015 16:29:01 GMT


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

View raw message