[DOCS-14240] Investigate changes in SERVER-53934: Refuse to start shards and config servers with setParameter requireApiVersion=true Created: 19/Feb/21  Updated: 13/Nov/23  Due: 21/May/21  Resolved: 20/May/21

Status: Closed
Project: Documentation
Component/s: manual, Server
Affects Version/s: None
Fix Version/s: 4.9.0, Server_Docs_20231030, Server_Docs_20231106, Server_Docs_20231105, Server_Docs_20231113

Type: Task Priority: Major - P3
Reporter: Backlog - Core Eng Program Management Team Assignee: Unassigned
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Documented
documents SERVER-53934 Refuse to start shards and config ser... Closed
Related
is related to DOCS-13824 Investigate changes in SERVER-49887: ... Closed
is related to SERVER-56925 Remove requireApiVersion server param... Closed
Participants:
Days since reply: 2 years, 37 weeks, 6 days ago
Epic Link: DOCSP-14217

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



 Comments   
Comment by Joseph Dougherty [ 20/May/21 ]

Closed. We decided not to document this parameter: https://jira.mongodb.org/browse/DOCS-13824?focusedCommentId=3784583&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-3784583

Comment by A. Jesse Jiryu Davis [ 14/May/21 ]

This might be moot, depending on SERVER-56925

Generated at Thu Feb 08 08:09:52 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.