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

XMLWordPrintableJSON

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

      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:
            [DO NOT USE] Backlog - Sharding Team
            Reporter:
            Esha Maharishi (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: