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

Investigate changes in SERVER-65030: Consider making external user facing commands replSetResizeOplog and setIndexCommitQuorum error when given unrecognized options

    XMLWordPrintableJSON

Details

    Description

      Original Downstream Change Summary

      No impacts on downstream teams unless replSetResizeOplog and setIndexCommitQuorum commands were being used outside of the documented syntax.

      db.adminCommand(

      { replSetResizeOplog: <int>, size: <double>, minRetentionHours: <double> }

      )

      db.runCommand(

      { setIndexCommitQuorum: <string>, indexNames: [ <document> ], commitQuorum: <int> | <string>, comment: <any> }

      )

      Description of Linked Ticket

      The following commands are user-facing but specify {strict: false} for how they parse their input. This means if the operator misspells an argument to the commands or includes a non-existing one, they won't always get an error. Changing these commands to be {strict: true} would protect against this but should be weighed against driver's and/or server's ability to send these commands internally without needing to know which version of the server they are talking with.


      import pathlib
      import yaml
       
      def check_file(pathname):
          with open(pathname) as data:
              blob = yaml.safe_load(data)
          for (command, command_details) in blob.get("commands", {}).items():
              if not command_details.get("strict", True):
                  yield command_details["command_name"]
       
      for pathname in pathlib.Path().rglob("src/mongo/**/*.idl"):
          if str(pathname) == "src/mongo/idl/unittest.idl":
              continue
          for command in check_file(pathname):
              if not command.startswith("_"):
                  print(f"{command} in {pathname}")
      

      Attachments

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved:
              1 year, 15 weeks, 5 days ago