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

Fix deadlock in TransactionRouter

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 8.1.0-rc0, 8.0.0-rc3
    • Affects Version/s: None
    • Component/s: None
    • None
    • Catalog and Routing
    • Fully Compatible
    • ALL
    • v8.0
    • CAR Team 2024-04-29
    • 20

      The server can be deadlocked in TransactionRouter running a command against itself without first yielding the session. This particular code path runs on a retried commit with a single write node target. This code usually runs in mongoS, where that command is never directed to itself, but to a shard. When it runs on an embedded router, or maybe even on a shard using the internal router capabilities, the target could be the same process, resulting in deadlock. The fix would be to yield the session before issuing the command.

        1. repro_bf.patch
          5 kB
          Pol Pinol

            Assignee:
            aitor.esteve@mongodb.com Aitor Esteve Alvarado
            Reporter:
            aitor.esteve@mongodb.com Aitor Esteve Alvarado
            Votes:
            0 Vote for this issue
            Watchers:
            11 Start watching this issue

              Created:
              Updated:
              Resolved: