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

async_rpc::sendHedgedCommand should rewrite targeter and executor shutdown errors

    • Type: Icon: Task Task
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 6.2.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • Labels:
    • Fully Compatible
    • Service Arch 2022-11-14, Service Arch 2022-11-28

      Due to the use of the executor in AsyncTry as part of it's outer async-loop, it's possible for sendHedgedCommand to return executor shutdown errors without rewriting them into RemoteCommandExecutionErrors. If targeting fails, the same issue can occur, because that failure occurs in the outer loop as well (i.e. evades the error-rewriting logic in the calls to async_rpc::sendCommand). 


      In this ticket, add tests for:

      • async_rpc::sendHedgedCommand's call to Targeter::resolve returning an error
      • executor shutdown while async_rpc::sendHedgedCommand has not yet produced a result

      Ensure that in each case, the sendHedgedCommand API returns a RemoteCommandExecutionError with the appropriate underlying error wrapped. 

            george.wangensteen@mongodb.com George Wangensteen
            george.wangensteen@mongodb.com George Wangensteen
            0 Vote for this issue
            2 Start watching this issue