Uploaded image for project: 'Documentation'
  1. Documentation
  2. DOCS-13610

Investigate changes in SERVER-47189: Do a safe reconfig to add config term on upgrade to FCV=4.4

      Description

      Downstream Change Summary

      On upgrade to 4.4 starting from RC1, the primary executes a similar reconfig to add the term field from the on-disk config document and blocks waiting for only a majority of the nodes to replicate the new config. This is sufficient to guarantee the new on-disk format will eventually propagate to all nodes and the next primary must have the new on-disk format. This is an optimization to avoid potential safety issues on the later transition from 4.2-style config to safe reconfig.

      Description of Linked Ticket

      When replica set nodes are in FCV=4.2, their replica set configs have no config "term" field. This is intentional so that the behavior in FCV=4.2 matches the v4.2 reconfig behavior. After upgrading to FCV=4.4, however, replica set nodes will not add a config term until the first safe reconfig is run. This can leave an indefinitely long period of time where nodes will have configs with uninitialized terms, which is unsafe for the reasons illustrated in the trace of this comment. To prevent this unsafe period of time after upgrade, we should do an internal no-op reconfig after upgrading to FCV=4.4 to automatically add config terms, analogous to what we do on FCV downgrade.

      Scope of changes

      Impact to Other Docs

      MVP (Work and Date)

      Resources (Scope or Design Docs, Invision, etc.)

            Assignee:
            ravind.kumar Ravind Kumar (Inactive)
            Reporter:
            backlog-server-pm Backlog - Core Eng Program Management Team
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:
              3 years, 49 weeks, 6 days ago