[DRIVERS-2398] Limit mongos Hosts for Implicit Session Prose Test Created: 25/Jul/22  Updated: 03/Aug/22

Status: Implementing
Project: Drivers
Component/s: Sessions
Fix Version/s: None

Type: Improvement Priority: Unknown
Reporter: Preston Vasquez Assignee: Preston Vasquez
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Issue split
split to CDRIVER-4438 Limit mongos Hosts for Implicit Sessi... Backlog
split to CSHARP-4269 Limit mongos Hosts for Implicit Sessi... Backlog
split to CXX-2553 Limit mongos Hosts for Implicit Sessi... Backlog
split to GODRIVER-2503 Limit mongos Hosts for Implicit Sessi... Closed
split to JAVA-4687 Limit mongos Hosts for Implicit Sessi... Closed
split to MOTOR-1001 Limit mongos Hosts for Implicit Sessi... Closed
split to NODE-4472 Limit mongos Hosts for Implicit Sessi... Closed
split to PHPLIB-919 Limit mongos Hosts for Implicit Sessi... Closed
split to PYTHON-3370 Limit mongos Hosts for Implicit Sessi... Closed
split to RUBY-3065 Limit mongos Hosts for Implicit Sessi... Closed
split to RUST-1419 Limit mongos Hosts for Implicit Sessi... Closed
Problem/Incident
is caused by DRIVERS-1030 Drivers should check out an implicit ... Closed
is caused by DRIVERS-2218 Clarify intended bounding of implicit... Implementing
Driver Changes: Needed
Downstream Changes Summary:

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

Driver Compliance:
Key Status/Resolution FixVersion
CDRIVER-4438 Backlog
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

 Description   

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.



 Comments   
Comment by Githook User [ 03/Aug/22 ]

Author:

{'name': 'Preston Vasquez', 'email': '24281431+prestonvasquez@users.noreply.github.com', 'username': 'prestonvasquez'}

Message: DRIVERS-2398 add mongos limiting note (#1280)
Branch: master
https://github.com/mongodb/specifications/commit/959ac01d71201b1a24981fc78c76434bd4bc2783

Generated at Thu Feb 08 08:25:29 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.