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

    XMLWordPrintable

    Details

    • Type: Task
    • Status: Open
    • Priority: Major - P3
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: 4.9.0
    • Component/s: manual, Server
    • Labels:
      None

      Description

      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.)

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              Unassigned Unassigned
              Reporter:
              backlog-server-pm Backlog - Core Eng Program Management Team
              Participants:
              Last commenter:
              Jeffrey Allen Jeffrey Allen
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Dates

                Created:
                Updated:
                Days since reply:
                8 weeks, 2 days ago