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

Change internal client code to only support the OP_MSG RPC protocol

    • Type: Icon: Task Task
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 5.1.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None
    • Fully Compatible
    • QE 2021-08-09

      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.

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

              Created:
              Updated:
              Resolved: