The router role should be responsible for yielding/unyielding TransactionParticipant resources, rather than the AsyncRequestSender

XMLWordPrintableJSON

    • Type: Improvement
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Catalog and Routing
    • None
    • 3
    • 🟩 Routing and Topology
    • None
    • None
    • None
    • None
    • None
    • None

      As seen in SERVER-96903, assigning the ARS the responsibility for yield and unyield can result in stale remote errors being overridden in favor of other errors.

      This issue arises because the responsibility for yielding and unyielding resources lies with a lower-level component, the AsyncRequestSender, which operates as part of the router role. At this level, the AsyncRequestSender should not be making decisions on how to handle errors or what to prioritize.

      To clarify responsibilities, we should assign the router role the task of yielding and unyielding resources and remove this code from the AsyncRequestSender. Additionally, SERVER-96903 workaround can be removed.

              Assignee:
              Unassigned
              Reporter:
              Pol Pinol
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated: