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

Investigate changes in SERVER-53934: Refuse to start shards and config servers with setParameter requireApiVersion=true

      Description

      Downstream Change Summary

      Mongod cannot be started with either --shardsvr or --configsvr and --setParameter requireApiVersion=true. Additionally, at runtime, if mongod is started with either --shardsvr or --configsvr, setParameter will refuse to set requireApiVersion=true

      Description of Linked Ticket

      In SERVER-49887 we introduced the requireApiVersion parameter which can be enabled at startup with --requireApiVersion, or at runtime with "setParameter". A server with this parameter enabled rejects all commands that lack an "apiVersion" field. This is intended to force external applications to configure their API version.

      xuerui.fa and I realized, while discussing SERVER-53555, that shard or config servers must require apiVersion. Connections internal to the sharded cluster should be marked as "internal client" and be excused from the requireApiVersion rule (once we fix SERVER-53555); however, it seems a likely source of obscure bugs if some connections aren't marked internal and all their commands are rejected.

      Let's update mongod so it refuses to start with -requireApiVersion plus either --shardSvr or --configSvr. And at runtime, if mongod was started with -shardSvr or --configSvr (but not --requireApiVersion), then "setParameter" should refuse to enable requireApiVersion. Let's document that config servers and shards shouldn't be started with requireApiVersion. The intention of requireApiVersion is enforce a rule on external clients, and config servers and shards only talk with internal clients, so they shouldn't be started with requireApiVersion.

      Scope of changes

      Consider doing this and DOCS-13824 together.

      Impact to Other Docs

      MVP (Work and Date)

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

            Assignee:
            Unassigned Unassigned
            Reporter:
            backlog-server-pm Backlog - Core Eng Program Management Team
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved:
              2 years, 48 weeks, 4 days ago