Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-56619

Arbiters should explicitly clear their durable optime

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major - P3
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: Backlog
    • Component/s: None
    • Operating System:
      ALL
    • Backport Requested:
      v4.4, v4.2

      Description

      Right now when a node starts up or has a config change, if it is not an arbiter it reads its last optime from the top of the oplog. If it is an arbiter it does not, but it does not clear the last optime either. So if a node goes from being not an arbiter (i.e. REMOVED, which can happen due to network errors) to being an arbiter, and it happens to have an oplog (which an arbiter might if it was ever started as a primary or secondary), it will end up with an old and possibly invalid (e.g. missing term or wall time) value for lastDurableOpTime, which will remain until the next restart.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              backlog-server-repl Backlog - Replication Team
              Reporter:
              matthew.russotto Matthew Russotto
              Participants:
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated: