Uploaded image for project: 'MongoDB Database Tools'
  1. MongoDB Database Tools
  2. TOOLS-3182

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

    • Type: Icon: Investigation Investigation
    • Resolution: Won't Do
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None

      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}")
      

            Assignee:
            dave.rolsky@mongodb.com Dave Rolsky
            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: