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

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

Agile BoardAttach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskConvert to sub-taskMoveLinkCloneLabelsUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    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

          $i18n.getText('security.level.explanation', $currentSelection) Viewable by All Users
          Cancel

            People

            • Assignee:
              bdeggleston Blake Eggleston Assign to me
              Reporter:
              bdeggleston Blake Eggleston
              Authors:
              Blake Eggleston
              Reviewers:
              Sam Tunnicliffe

              Dates

              • Created:
                Updated:
                Resolved:

                Issue deployment