[jira] [Updated] (CASSANDRA-13305) Slice.isEmpty() returns false for some empty slices
[ https://issues.apache.org/jira/browse/CASSANDRA-13305?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sylvain Lebresne updated CASSANDRA-13305: - Fix Version/s: (was: 3.0.12) 3.0.13 > Slice.isEmpty() returns false for some empty slices > --- > > Key: CASSANDRA-13305 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13305 > Project: Cassandra > Issue Type: Bug >Reporter: Sylvain Lebresne >Assignee: Sylvain Lebresne > Fix For: 3.0.13, 3.11.0 > > > {{Slice.isEmpty}} is currently defined as {{comparator.compare(end, start) < > 0}} but this shouldn't be a strict inequality. Indeed, the way > {{Slice.Bound}} is defined, having a start equal to an end implies a range > like {{[1, 1)}}, but that range is definitively empty and something we > shouldn't let in as that would break merging and other range tombstone > related code. > In practice, if you can currently insert such empty range (with something > like {{DELETE FROM t WHERE k = 'foo' AND i >= 1 AND i < 1}}), and that can > trigger assertions in {{RangeTomstoneList}} (and possibly other problem). -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (CASSANDRA-13305) Slice.isEmpty() returns false for some empty slices
[ https://issues.apache.org/jira/browse/CASSANDRA-13305?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sylvain Lebresne updated CASSANDRA-13305: - Resolution: Fixed Fix Version/s: (was: 3.11.x) (was: 3.0.x) 3.11.0 3.0.12 Status: Resolved (was: Ready to Commit) Committed, thanks. > Slice.isEmpty() returns false for some empty slices > --- > > Key: CASSANDRA-13305 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13305 > Project: Cassandra > Issue Type: Bug >Reporter: Sylvain Lebresne >Assignee: Sylvain Lebresne > Fix For: 3.0.12, 3.11.0 > > > {{Slice.isEmpty}} is currently defined as {{comparator.compare(end, start) < > 0}} but this shouldn't be a strict inequality. Indeed, the way > {{Slice.Bound}} is defined, having a start equal to an end implies a range > like {{[1, 1)}}, but that range is definitively empty and something we > shouldn't let in as that would break merging and other range tombstone > related code. > In practice, if you can currently insert such empty range (with something > like {{DELETE FROM t WHERE k = 'foo' AND i >= 1 AND i < 1}}), and that can > trigger assertions in {{RangeTomstoneList}} (and possibly other problem). -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (CASSANDRA-13305) Slice.isEmpty() returns false for some empty slices
[ https://issues.apache.org/jira/browse/CASSANDRA-13305?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Branimir Lambov updated CASSANDRA-13305: Status: Ready to Commit (was: Patch Available) > Slice.isEmpty() returns false for some empty slices > --- > > Key: CASSANDRA-13305 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13305 > Project: Cassandra > Issue Type: Bug >Reporter: Sylvain Lebresne >Assignee: Sylvain Lebresne > Fix For: 3.0.x, 3.11.x > > > {{Slice.isEmpty}} is currently defined as {{comparator.compare(end, start) < > 0}} but this shouldn't be a strict inequality. Indeed, the way > {{Slice.Bound}} is defined, having a start equal to an end implies a range > like {{[1, 1)}}, but that range is definitively empty and something we > shouldn't let in as that would break merging and other range tombstone > related code. > In practice, if you can currently insert such empty range (with something > like {{DELETE FROM t WHERE k = 'foo' AND i >= 1 AND i < 1}}), and that can > trigger assertions in {{RangeTomstoneList}} (and possibly other problem). -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (CASSANDRA-13305) Slice.isEmpty() returns false for some empty slices
[ https://issues.apache.org/jira/browse/CASSANDRA-13305?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joshua McKenzie updated CASSANDRA-13305: Reviewer: Branimir Lambov > Slice.isEmpty() returns false for some empty slices > --- > > Key: CASSANDRA-13305 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13305 > Project: Cassandra > Issue Type: Bug >Reporter: Sylvain Lebresne >Assignee: Sylvain Lebresne > Fix For: 3.0.x, 3.11.x > > > {{Slice.isEmpty}} is currently defined as {{comparator.compare(end, start) < > 0}} but this shouldn't be a strict inequality. Indeed, the way > {{Slice.Bound}} is defined, having a start equal to an end implies a range > like {{[1, 1)}}, but that range is definitively empty and something we > shouldn't let in as that would break merging and other range tombstone > related code. > In practice, if you can currently insert such empty range (with something > like {{DELETE FROM t WHERE k = 'foo' AND i >= 1 AND i < 1}}), and that can > trigger assertions in {{RangeTomstoneList}} (and possibly other problem). -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (CASSANDRA-13305) Slice.isEmpty() returns false for some empty slices
[ https://issues.apache.org/jira/browse/CASSANDRA-13305?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sylvain Lebresne updated CASSANDRA-13305: - Status: Patch Available (was: Open) Patch is trivial, but attaching a unit test to demonstrate the problem too. | [13305-3.0|https://github.com/pcmanus/cassandra/commits/13305-3.0] | [utests|http://cassci.datastax.com/job/pcmanus-13305-3.0-testall] | [dtests|http://cassci.datastax.com/job/pcmanus-13305-3.0-dtest] | | [13305-3.11|https://github.com/pcmanus/cassandra/commits/13305-3.11] | [utests|http://cassci.datastax.com/job/pcmanus-13305-3.11-testall] | [dtests|http://cassci.datastax.com/job/pcmanus-13305-3.11-dtest] | > Slice.isEmpty() returns false for some empty slices > --- > > Key: CASSANDRA-13305 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13305 > Project: Cassandra > Issue Type: Bug >Reporter: Sylvain Lebresne >Assignee: Sylvain Lebresne > Fix For: 3.0.x, 3.11.x > > > {{Slice.isEmpty}} is currently defined as {{comparator.compare(end, start) < > 0}} but this shouldn't be a strict inequality. Indeed, the way > {{Slice.Bound}} is defined, having a start equal to an end implies a range > like {{[1, 1)}}, but that range is definitively empty and something we > shouldn't let in as that would break merging and other range tombstone > related code. > In practice, if you can currently insert such empty range (with something > like {{DELETE FROM t WHERE k = 'foo' AND i >= 1 AND i < 1}}), and that can > trigger assertions in {{RangeTomstoneList}} (and possibly other problem). -- This message was sent by Atlassian JIRA (v6.3.15#6346)