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

commitTransaction on mongos can leave the transaction open on some participants if one participant returns an error

    • Type: Icon: Bug Bug
    • Resolution: Works as Designed
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Sharding
    • Labels:
      None
    • Sharding
    • ALL

      This is because the ARS is not guaranteed to send a request to each remote at least once: the ARS can be destroyed before scheduling all the requests, which will cause the requests that had yet to be scheduled to return this error.

      The fix could be to make commitTransaction use gatherResponses, which fully exhausts the ARS before returning. However, for the single-write-shard commit path, we should take care to send abortTransaction to the single write shard if one of the read-only shards returned an error to commitTransaction.

            Assignee:
            backlog-server-sharding [DO NOT USE] Backlog - Sharding Team
            Reporter:
            esha.maharishi@mongodb.com Esha Maharishi (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: