cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Benedict (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-9462) ViewTest.sstableInBounds is failing
Date Wed, 03 Jun 2015 06:50:49 GMT


Benedict commented on CASSANDRA-9462:

I've pushed a branch [here|] to attempt
to deal with this, since I had a half-completed implementation from CASSANDRA-8568 (that when
I realised the scale of the problem, I decided was out of scope for that ticket). 

In doing so, I noticed some more problems / inconsistencies: AbstractBounds provides an unwrap()
method, but it is a no-op unless the bound is a Range. This isn't at all clear, and I suspect
we have been using AB with the assumption they could also wrap. I've inserted an assertion
in bounds construction to ensure we never create a bound that wraps that is not a Range. This
branch, as a result, is exploratory: whether or not CI breaks, we should probably remove the
assertions and implement the unwrap() method, as introducing assertions like those could cause
currently broken functionality not caught in tests to fail hard in the field.

Ultimately, I think I would prefer that we flatten the different AbstractBounds classes into
one Bounds implementation for this ticket. Which probably means different patches for 2.1/2.2
and 3.0.

> ViewTest.sstableInBounds is failing
> -----------------------------------
>                 Key: CASSANDRA-9462
>                 URL:
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: Benedict
>             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