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

Replica set endpoint doesn't return "TransientTransactionError" label for a write command that is run against a secondary

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 8.1.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None
    • Cluster Scalability
    • Fully Compatible
    • ALL
    • Cluster Scalability 2024-4-15, Cluster Scalability 2024-4-29, Cluster Scalability 2024-5-13

      Before forcing a write command to go through the router, the replica set endpoint does a pre-check to ensure that the node is a primary. This check is performed "too early", i.e. not inside the ServiceEntryPoint which has the code to attach the error labels (e.g. here and here). Not returning the "TransientTransactionError" label means that the drivers wouldn't retry the transaction on behalf of the user. So this needs to be fixed. 

      NB: This pre-check also affects error labeling in general (e.g. "RetryableWriteError"). 

            Assignee:
            cheahuychou.mao@mongodb.com Cheahuychou Mao
            Reporter:
            cheahuychou.mao@mongodb.com Cheahuychou Mao
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: