Uploaded image for project: 'Couchbase Server'
  1. Couchbase Server
  2. MB-28478

[Plasma] If corruption is detected, hard fail next DB open

    XMLWordPrintable

Details

    • Untriaged
    • No
    • CBSS Sprint 03-16-2018

    Description

      Currently if plasma.New() encounters a fatal error like ErrCorruptLSSBlock, it fails the open and returns to indexer, which restarts the indexer process.

      Instead, if a recoverable fatal error (like ErrCorruptLSSBlock) is detected in NewLSStore(), auto rollback to the previous recovery checkpoint.

      Updating this with discussions, in plasma since there is a continuous incrementally compacted log, rolling back to a prior checkpoint may not ensure that the corrupted page will not be accessed again since some keys in that page may go all the way back to the oldest snapshot.

      So for plasma, a corruption can be handled as follows:

      1. Attempt to record the fact that a corruption was detected in a non-open code path.
      2. Fail NewLSStore() with the corruption error

       

       

      Attachments

        Issue Links

          For Gerrit Dashboard: MB-28478
          # Subject Branch Project Status CR V

          Activity

            People

              prasanna.gholap Prasanna Gholap [X] (Inactive)
              sundar Sundar Sridharan (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes

                  PagerDuty