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

Remove manual check that skips retrying requests with startTransaction in ARS

    • Type: Icon: Task Task
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Labels:
    • Cluster Scalability

      It's not necessary for the ARS to manually skip retrying requests with 'startTransaction' anymore because we correctly invalidate session and transaction state on failovers. In general, we rely on users of the ARS to pass the appropriate retry policy, and a retry policy other than kNoRetry for transaction requests should only be used for a small number of commands (read commands).

      Background context: SERVER-49044 originally added this skip because at the time, we didn't correctly invalidate sessions and transactions, so retrying a txn request on a new primary would lead to an error during replication if the transaction ultimately committed. We now correctly invalidate transactions, and will not hit this error.

      I've attached a repro of the initial issue that SERVER-49044 was seeking to solve, which shows we will successfully invalidate session and transaction state on a stepdown today, and can successfully commit even if we were to remove the manual skipping retrying on startTransaction.

            Assignee:
            backlog-server-cluster-scalability [DO NOT USE] Backlog - Cluster Scalability
            Reporter:
            janna.golden@mongodb.com Janna Golden
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: