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

Consistency can be violated when bootstrap or decommission is resumed after node restart

    XMLWordPrintableJSON

    Details

    • Bug Category:
      Correctness - Consistency
    • Severity:
      Normal
    • Complexity:
      Low Hanging Fruit
    • Discovered By:
      User Report
    • Platform:
      All
    • Impacts:
      None
    • Since Version:

      Description

      Since CASSANDRA-12008, successfully transferred ranges during decommission are saved on the system.transferred_ranges table. This allow skipping ranges already transferred when a failed decommission is retried with nodetool decommission.

      If instead of resuming the decommission, an operator restarts the node, waits N minutes and then performs a new decommission, the previously transferred ranges will be skipped during streaming, and any writes received by the decommissioned node during these N minutes will not be replicated to the new range owner, what violates consistency.

      This issue is analogous to the issue mentioned on this comment for resumable bootstrap (CASSANDRA-8838).

      In order to prevent consistency violations we should clear the system.transferred_ranges state during node restart, and maybe a system property to disable it. While we're at this, we should change the default of -Dcassandra.reset_bootstrap_progress to true to clear the system.available_ranges state by default when a bootstrapping node is restarted.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                paulo Paulo Motta
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated: