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

Column can expire while lazy compacting it...

    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

        1. 5799.txt
          2 kB
          Sylvain Lebresne

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: