[ 
https://issues.apache.org/jira/browse/CASSANDRA-2641?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sylvain Lebresne reopened CASSANDRA-2641:
-----------------------------------------


Sorry, I was much too quick in reviewing this. The patch has two problems:
 * It works only for Bounds, not Range. It will say that (1, 2] and (2, 3] are 
overlapping but it's not.
 * It does the check on the unsorted input list, so that's another reason why 
he will uncorrectly report overlapping

Because I'm stubborn, I'm attaching a patch that take the approach of making 
normalize() deoverlap overlapping ranges. It also add a number of unit tests 
for normalize.


> AbstractBounds.normalize should deal with overlapping ranges
> ------------------------------------------------------------
>
>                 Key: CASSANDRA-2641
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2641
>             Project: Cassandra
>          Issue Type: Test
>          Components: Core
>            Reporter: Stu Hood
>            Assignee: Stu Hood
>            Priority: Minor
>             Fix For: 0.8.1
>
>         Attachments: 0001-Assert-non-overlapping-ranges-in-normalize.txt, 
> 0001-Make-normalize-deoverlap-ranges.patch, 
> 0002-Don-t-use-overlapping-ranges-in-tests.txt
>
>
> Apparently no consumers have encountered it in production, but 
> AbstractBounds.normalize does not handle overlapping ranges. If given 
> overlapping ranges, the output will be sorted but still overlapping, for 
> which SSTableReader.getPositionsForRanges will choose ranges in an SSTable 
> that may overlap.
> We should either add an assert in normalize(), or in getPositionsForRanges() 
> to ensure that this never bites us in production.

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

Reply via email to