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

Column can expire while lazy compacting it...

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

Details

    • Bug
    • Status: Resolved
    • Normal
    • Resolution: Fixed
    • 1.2.7
    • None
    • None
    • Normal

    Description

      Using TTL + range tombstones can lead to failure while lazy compacting rows.

      Scenario to reproduce :

      • create an SSTable with one row and some columns and a TTL of 8 seconds
      • wait one second
      • create a second SSTable with the same rowkey as above, and add a range tombstone
      • start the first pass of the lazy compaction before the columns with TTL are expired
      • wait 10 seconds (enough for columns with TTL to expire)
      • continue lazy expiration
      • the following assertion will fail :
        [junit] junit.framework.AssertionFailedError: originally calculated column size of 1379 but now it is 1082
        [junit] at org.apache.cassandra.db.compaction.LazilyCompactedRow.write(LazilyCompactedRow.java:150)

      Attachments

        Issue Links

        Activity

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

          People

            slebresne Sylvain Lebresne Assign to me
            frousseau Fabien Rousseau
            Sylvain Lebresne
            Jonathan Ellis
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment