Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-15924

Avoid emitting empty range tombstones from RangeTombstoneList

Agile BoardAttach filesAttach ScreenshotBulk Copy AttachmentsBulk Move AttachmentsVotersWatch issueWatchersCreate sub-taskConvert to sub-taskMoveLinkCloneLabelsUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    Description

      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;

      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)
      

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            marcuse Marcus Eriksson Assign to me
            marcuse Marcus Eriksson
            Marcus Eriksson
            Alex Petrov, Marcus Eriksson, Sylvain Lebresne
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment