[jira] [Commented] (CASSANDRA-15924) Avoid emitting empty range tombstones from RangeTombstoneList

2020-07-09 Thread Alex Petrov (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-15924?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17154556#comment-17154556
 ] 

Alex Petrov commented on CASSANDRA-15924:
-

+1 as well. Thank you for the patch!

> Avoid emitting empty range tombstones from RangeTombstoneList
> -
>
> Key: CASSANDRA-15924
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15924
> Project: Cassandra
>  Issue Type: Bug
>  Components: Consistency/Coordination
>Reporter: Marcus Eriksson
>Assignee: Marcus Eriksson
>Priority: Normal
> Fix For: 3.0.x, 3.11.x, 4.x
>
>
> In {{RangeTombstoneList#iterator}} there is a chance we emit empty range 
> tombstones depending on the slice passed in. This can happen during read 
> repair with either an empty slice or with paging and the final page being 
> empty.
> This creates problems in RTL if we try to insert a new range tombstone which 
> covers the empty ones;
> {code}
> Caused by: java.lang.AssertionError
>   at 
> org.apache.cassandra.db.RangeTombstoneList.insertFrom(RangeTombstoneList.java:541)
>   at 
> org.apache.cassandra.db.RangeTombstoneList.addAll(RangeTombstoneList.java:217)
>   at 
> org.apache.cassandra.db.MutableDeletionInfo.add(MutableDeletionInfo.java:141)
>   at 
> org.apache.cassandra.db.partitions.AtomicBTreePartition.addAllWithSizeDelta(AtomicBTreePartition.java:137)
>   at org.apache.cassandra.db.Memtable.put(Memtable.java:254)
>   at 
> org.apache.cassandra.db.ColumnFamilyStore.apply(ColumnFamilyStore.java:1210)
>   at org.apache.cassandra.db.Keyspace.applyInternal(Keyspace.java:573)
>   at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:421)
>   at org.apache.cassandra.db.Mutation.apply(Mutation.java:210)
>   at org.apache.cassandra.db.Mutation.apply(Mutation.java:215)
>   at org.apache.cassandra.db.Mutation.apply(Mutation.java:224)
>   at 
> org.apache.cassandra.cql3.statements.ModificationStatement.executeInternalWithoutCondition(ModificationStatement.java:582)
>   at 
> org.apache.cassandra.cql3.statements.ModificationStatement.executeInternal(ModificationStatement.java:572)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-15924) Avoid emitting empty range tombstones from RangeTombstoneList

2020-07-07 Thread Sylvain Lebresne (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-15924?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17152563#comment-17152563
 ] 

Sylvain Lebresne commented on CASSANDRA-15924:
--

Left a minor comment on github for making operators priority explicit in the 
2nd commit, but lgtm otherwise, +1. 

> Avoid emitting empty range tombstones from RangeTombstoneList
> -
>
> Key: CASSANDRA-15924
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15924
> Project: Cassandra
>  Issue Type: Bug
>  Components: Consistency/Coordination
>Reporter: Marcus Eriksson
>Assignee: Marcus Eriksson
>Priority: Normal
> Fix For: 3.0.x, 3.11.x, 4.x
>
>
> In {{RangeTombstoneList#iterator}} there is a chance we emit empty range 
> tombstones depending on the slice passed in. This can happen during read 
> repair with either an empty slice or with paging and the final page being 
> empty.
> This creates problems in RTL if we try to insert a new range tombstone which 
> covers the empty ones;
> {code}
> Caused by: java.lang.AssertionError
>   at 
> org.apache.cassandra.db.RangeTombstoneList.insertFrom(RangeTombstoneList.java:541)
>   at 
> org.apache.cassandra.db.RangeTombstoneList.addAll(RangeTombstoneList.java:217)
>   at 
> org.apache.cassandra.db.MutableDeletionInfo.add(MutableDeletionInfo.java:141)
>   at 
> org.apache.cassandra.db.partitions.AtomicBTreePartition.addAllWithSizeDelta(AtomicBTreePartition.java:137)
>   at org.apache.cassandra.db.Memtable.put(Memtable.java:254)
>   at 
> org.apache.cassandra.db.ColumnFamilyStore.apply(ColumnFamilyStore.java:1210)
>   at org.apache.cassandra.db.Keyspace.applyInternal(Keyspace.java:573)
>   at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:421)
>   at org.apache.cassandra.db.Mutation.apply(Mutation.java:210)
>   at org.apache.cassandra.db.Mutation.apply(Mutation.java:215)
>   at org.apache.cassandra.db.Mutation.apply(Mutation.java:224)
>   at 
> org.apache.cassandra.cql3.statements.ModificationStatement.executeInternalWithoutCondition(ModificationStatement.java:582)
>   at 
> org.apache.cassandra.cql3.statements.ModificationStatement.executeInternal(ModificationStatement.java:572)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org