Make async_rpc::sendHedgeCommand kill unused cursors

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Duplicate
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Service Arch
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None

      When async_rpc::sendHedgedCommand receives a response that will be used to satisfy the command, it cancels outstanding network operations. If these cancellations succeed, the NetworkInterface should clean up the underlying commands by sending _killOperations. However, if the network operations we're trying to cancel complete before our cancellation arrives, we need to explicitly send _killOperations to ensure we don't leak any cursors established by the completed operation. 

      Let's ensure that async_rpc::sendHedgedCommand always sends _killOperations when there a network operation it initiated that:

      • has started an ongoing operation on a remote node, or opened a cursor on a remote node
      • is not used to produce the response for the command

      In such cases, _killOperations will ensure that the network operation that is not used to produce the response cannot leak any state, by cleaning up any remote cursors and ongoing remote operations it may have initiated.  

            Assignee:
            [DO NOT USE] Backlog - Service Architecture
            Reporter:
            George Wangensteen (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: