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

Rows that cross index block boundaries can cause incomplete reverse reads in some cases.

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Urgent
    • Resolution: Fixed
    • Fix Version/s: 3.0.x, 3.11.x
    • Component/s: Local/SSTable
    • Labels:
      None
    • Bug Category:
      Correctness - Transient Incorrect Response
    • Severity:
      Critical
    • Complexity:
      Challenging
    • Discovered By:
      Fuzz Test
    • Since Version:

      Description

      When we're reading 2.1 sstables in reverse, we skip the first row of an index block if it's split across index boundaries. The entire row will be read at the end of the next block. In some cases though, the only thing in this index block is the partial row, so we return an empty iterator. The empty iterator is then interpreted as the end of the row further down the call stack, so we return early without reading the rest of the data. This only affects 3.x during upgrades from 2.1

        Attachments

          Activity

            People

            • Assignee:
              bdeggleston Blake Eggleston
              Reporter:
              bdeggleston Blake Eggleston
              Authors:
              Blake Eggleston
              Reviewers:
              Sam Tunnicliffe
            • Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: