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

Transaction test runner should use "local" read concern when asserting the final collection state

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Component/s: None
    • Labels:
      None
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      PYTHON-1691 Fixed 3.8
      NODE-1793 Fixed 3.2.0
      SCALA-483 Done
      CSHARP-2452 Fixed 2.9.0
      PERL-1048 Done 2.1.1
      RUBY-1614 Fixed 2.9.0.rc0
      JAVA-3121 Works as Designed
      CXX-1704 Fixed 3.6.0-rc0, 3.6.0
      PHPLIB-403 Done
      MOTOR-294 Gone away
      GODRIVER-690 Fixed 1.1.0
      CDRIVER-2901 Fixed 1.15.0
      RUST-95 Won't Fix
      SWIFT-568 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 PYTHON-1691 Fixed 3.8 NODE-1793 Fixed 3.2.0 SCALA-483 Done CSHARP-2452 Fixed 2.9.0 PERL-1048 Done 2.1.1 RUBY-1614 Fixed 2.9.0.rc0 JAVA-3121 Works as Designed CXX-1704 Fixed 3.6.0-rc0, 3.6.0 PHPLIB-403 Done MOTOR-294 Gone away GODRIVER-690 Fixed 1.1.0 CDRIVER-2901 Fixed 1.15.0 RUST-95 Won't Fix SWIFT-568 Done

      Useful Info

      Lead:
      POCs:

      Summary:
      The transaction spec test runner says:

      #. For each element in ``outcome``:
      
         - If ``name`` is "collection", verify that the test collection contains
           exactly the documents in the ``data`` array. Ensure this find uses
           Primary read preference even when the MongoClient is configured with
           another read preference.
      

      However, when a test configures the client with readConcern=majority and performs a write with w=1, then the subsequent find will run with readConcern=majority and possibly miss the w=1 write depending on the current majority commit point.

      To ensure the find remains causally consistent with previous operations we must use "local" read concern while reading the latest data on the primary.

      Final Specification:
      https://github.com/mongodb/specifications/commit/0b8c2e9cef44848a89ec9b5aceeb3f5382879d46

            Assignee:
            Unassigned Unassigned
            Reporter:
            shane.harvey@mongodb.com Shane Harvey
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: