Uploaded image for project: 'Drivers'
  1. Drivers
  2. DRIVERS-601

Drivers should use majority write concern when retrying commitTransaction

    • Type: Icon: Improvement Improvement
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Component/s: None
    • Labels:
      None
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      NODE-1848 Fixed 3.1.13
      SCALA-491 Done
      PYTHON-1730 Fixed 3.9
      CSHARP-2493 Fixed 2.9.0
      RUBY-1689 Duplicate
      JAVA-3153 Fixed 3.11.0
      CXX-1719 Fixed 3.5.0
      PHPC-1319 Fixed 1.6.0alpha3, 1.6.0
      GODRIVER-790 Fixed 1.0.0
      CDRIVER-2936 Fixed 1.15.0
      RUST-134 Duplicate
      PERL-1057 Fixed 2.2.0
      MOTOR-305 Fixed 2.1
      RUBY-1654 Fixed 2.8.0.rc0, 2.7.1
      SWIFT-565 Done
      $i18n.getText("admin.common.words.show")
      #scriptField, #scriptField *{ border: 1px solid black; } #scriptField{ border-collapse: collapse; } #scriptField td { text-align: center; /* Center-align text in table cells */ } #scriptField td.key { text-align: left; /* Left-align text in the Key column */ } #scriptField a { text-decoration: none; /* Remove underlines from links */ border: none; /* Remove border from links */ } /* Add green background color to cells with FixVersion */ #scriptField td.hasFixVersion { background-color: #00FF00; /* Green color code */ } /* Center-align the first row headers */ #scriptField th { text-align: center; } Key Status/Resolution FixVersion NODE-1848 Fixed 3.1.13 SCALA-491 Done PYTHON-1730 Fixed 3.9 CSHARP-2493 Fixed 2.9.0 RUBY-1689 Duplicate JAVA-3153 Fixed 3.11.0 CXX-1719 Fixed 3.5.0 PHPC-1319 Fixed 1.6.0alpha3, 1.6.0 GODRIVER-790 Fixed 1.0.0 CDRIVER-2936 Fixed 1.15.0 RUST-134 Duplicate PERL-1057 Fixed 2.2.0 MOTOR-305 Fixed 2.1 RUBY-1654 Fixed 2.8.0.rc0, 2.7.1 SWIFT-565 Done

      Relevant changes were added to the commitTransaction section:

      When commitTransaction is retried, either by the driver's internal retry-once logic or explicitly by the user calling commitTransaction again, drivers MUST apply w: majority to the write concern of the commitTransaction command. If the transaction is using a writeConcern that is not the server default (i.e. specified via TransactionOptions during the startTransaction call or otherwise inherited), any other write concern options (e.g. wtimeout) MUST be left as-is when applying w: majority. Finally, if the modified write concern does not include a wtimeout value, drivers MUST also apply wtimeout: 10000 to the write concern in order to avoid waiting forever (or until a socket timeout) if the majority write concern cannot be satisfied. See Majority write concern is used when retrying commitTransaction.

      Note: The transaction spec tests have also been updated. Please ensure your driver is synced to https://github.com/mongodb/specifications/commit/ba1b071fa8b63454fb421bec824c454c92fc5e83 (or newer).

            Assignee:
            Unassigned Unassigned
            Reporter:
            jmikola@mongodb.com Jeremy Mikola
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: