Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-58703

Change internal client code to only support the OP_MSG RPC protocol

    XMLWordPrintable

Details

    • Task
    • Status: Closed
    • Major - P3
    • Resolution: Fixed
    • None
    • 5.1.0-rc0
    • None
    • None
    • Fully Compatible
    • QE 2021-08-09

    Description

      During the connection handshake, the internal client will run a hello command to determine the RPC protocols supported by the server. Using knowledge of its own supported protocols in DBClientBase::_clientRPCProtocls, it decides which protocol it should use to run subsequent commands on the connection.

      Since we are removing support for OP_QUERY commands, we should change the internal client so that it only supports OP_MSG. This involves the following:

      • Deleting ScopedForceOpQuery.
      • Deleting ShellGlobalParams::rpcProtocols.
      • Deleting DBClientBase::setClientRPCProtocols().
      • Getting rid of the DBClientBase::_clientRPCProtocols and instead hardcoding OP_MSG as the only supported protocol.

      This work will not go as far as to delete the RPC protocol negotiation altogether. We may want to keep this logic in place in case we ever want to add a new RPC protocol that is neither OP_QUERY nor OP_MSG. Any further simplification to the RPC protocol negotiation is tracked by related ticket SERVER-58210.

      Attachments

        Issue Links

          Activity

            People

              yoonsoo.kim@mongodb.com Yoon Soo Kim
              david.storch@mongodb.com David Storch
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: