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

Limit mongos Hosts for Implicit Session Prose Test

    • Type: Icon: Improvement Improvement
    • Resolution: Unresolved
    • Priority: Icon: Unknown Unknown
    • None
    • Component/s: Sessions
    • Labels:
      None
    • Needed
    • Hide

      Drivers should sync sessions prose tests to mongodb/specifications@959ac0.

      Show
      Drivers should sync sessions prose tests to mongodb/specifications@959ac0 .
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      CDRIVER-4438 Works as Designed
      CXX-2553 Backlog
      CSHARP-4269 Backlog
      GODRIVER-2503 Duplicate
      JAVA-4687 Done
      NODE-4472 Fixed 4.9.0
      MOTOR-1001 Duplicate
      PYTHON-3370 Works as Designed
      PHPLIB-919 Won't Do
      RUBY-3065 Duplicate
      RUST-1419 Duplicate
      SWIFT-1611 Works as Designed
      $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-4438 Works as Designed CXX-2553 Backlog CSHARP-4269 Backlog GODRIVER-2503 Duplicate JAVA-4687 Done NODE-4472 Fixed 4.9.0 MOTOR-1001 Duplicate PYTHON-3370 Works as Designed PHPLIB-919 Won't Do RUBY-3065 Duplicate RUST-1419 Duplicate SWIFT-1611 Works as Designed

      Summary

      If there are more than one writable servers in the topology, the following condition for the implicit session prose test is unlikely to pass, at least for the Go Driver

      Drivers MUST assert that exactly one session is used for all operations at least once across the retries of this test.

      For reference, it seems like the mongo-orchestration can often specify starting 2 mongos instances, e.g. auth.json.

      This ticket proposes extending the prose test to include ensuring a single mongos node is used, ala retryable-reads.

      Motivation

      The race condition created by using multiple writable servers in a mongos topology makes the first MUST condition of the implicit session prose test flakey.

      Here is an evergreen patch as example.

      Who is the affected end user?

      NA

      How does this affect the end user?

      NA

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

      This is consistent in the Go Driver.

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

      Failing evergreen tests for sharded clusters.

      Is this issue urgent?

      No

      Is this ticket required by a downstream team?

      NA

      Is this ticket only for tests?

      Yes.

            Assignee:
            preston.vasquez@mongodb.com Preston Vasquez
            Reporter:
            preston.vasquez@mongodb.com Preston Vasquez
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: