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

Implement unstash for TransactionRouter

    • Type: Icon: Task Task
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 6.0.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None
    • Fully Compatible
    • Sharding NYC 2022-03-21, Sharding NYC 2022-04-04

      To enable scenarios where an operation in the transaction API that checked out a session to use its TransactionRouter needs to run a sub operation against its local process that will also need to check out that session, SERVER-59186 added support for yielding a session to the API. When the API unyields its session, it calls TransactionRouter::unstash() (meant to mirror TransactionParticipant::unstash()), which currently does nothing, but should be changed to verify the TransactionRouter's transaction number hasn't changed and the unstashed transaction is still valid with the unyielding operation context.

      Additionally, in this ticket we should verify the metrics for the TransactionRouter are appropriately updated by unstash() and add unit testing if necessary.

            Assignee:
            sanika.phanse@mongodb.com Sanika Phanse (Inactive)
            Reporter:
            jack.mulrow@mongodb.com Jack Mulrow
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: