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

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

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

      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 Unassigned
            Reporter:
            pol.pinol@mongodb.com Pol Pinol
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated: