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

Add test that reads are not retried in a transaction

    • Type: Icon: Improvement Improvement
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Component/s: Retryability, Transactions
    • None
    • Needed
    • Hide

      Drivers should update unified transaction tests to this commit.

      Show
      Drivers should update unified transaction tests to this commit .
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      CDRIVER-4436 Done
      CXX-2552 Fixed 3.9.0
      CSHARP-4267 Fixed 2.18.0
      GODRIVER-2502 Done
      JAVA-4686 Done
      NODE-4465 Fixed 4.9.0
      MOTOR-1000 Duplicate
      PYTHON-3368 Fixed 4.3
      PHPLIB-918 Fixed 1.15.0
      RUBY-3063 Fixed 2.18.1
      RUST-1418 Fixed 2.4.0
      SWIFT-1610 Fixed 1.4.0
      $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 CDRIVER-4436 Done CXX-2552 Fixed 3.9.0 CSHARP-4267 Fixed 2.18.0 GODRIVER-2502 Done JAVA-4686 Done NODE-4465 Fixed 4.9.0 MOTOR-1000 Duplicate PYTHON-3368 Fixed 4.3 PHPLIB-918 Fixed 1.15.0 RUBY-3063 Fixed 2.18.1 RUST-1418 Fixed 2.4.0 SWIFT-1610 Fixed 1.4.0

      Summary

      Add a missing test case to assert that a driver does not retry a read when in a transaction. This would have prevented JAVA-4684 regression.

      The requirement is in the retryable reads specification in the when not to allow retry section.

      Motivation

      Who is the affected end user?

      Driver authors

      How likely is it that this problem or use case will occur?

      This seems like an easy bug for a driver to have or introduce, and it's hard to detect since it depends on a server failure at just the right time

      If the problem does occur, what are the consequences and how severe are they?

      Applications won't get the benefit of the convent transaction API's automatic retry mechanism if a driver has this bug

      Is this issue urgent?

      Yes, since we want to fix the Java driver bug and need a test to assert correct behavior.

      Is this ticket required by a downstream team?

      No

      Is this ticket only for tests?

      It's a missing test of required behavior

            Assignee:
            jeff.yemin@mongodb.com Jeffrey Yemin
            Reporter:
            jeff.yemin@mongodb.com Jeffrey Yemin
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: