-
Type: Task
-
Resolution: Unresolved
-
Priority: Minor - P4
-
None
-
Component/s: Change Streams, CSOT, Retryability, Sessions, Stable API, Transactions, Unified Test Runner
-
Needed
-
Summary
I came across some redundant runOnRequirement definitions in various spec tests while reviewing mongodb/specifications#1389 for DRIVERS-2577. For instance, some specs include both "sharded-replicaset" and "sharded" in the same topologies array.
MongoDB 3.6+ requires that all shards be replica sets (see: Shard Replica Sets from the MongoDB 3.6 release notes). With that in mind, the "sharded-replicaset" topology is not useful for runOnRequirements that specify a minServerVersion of 3.6+.
Historically, I cannot recall a case where a test incorrectly used "sharded" instead of "sharded-replicaset". This would only have been an issue for testing on pre-3.6 servers, but most of the features that require replica sets already require 3.6+ (e.g. change streams, transactions). Additionally, the mongo-orchestration configs in drivers-evergreen-tools have historically used replica sets for shards.
The Unified Test Format spec format would do well to deprecate "sharded-replicaset" and encourage tests to use "sharded" in its place (when targeting 3.6+ servers).
Motivation
Who is the affected end user?
Driver developers.
How does this affect the end user?
Using "sharded-replicaset" adds unnecessary overhead. Additionally, redundant runOnRequirements make tests files more verbose.
Is this issue urgent?
No.
Is this ticket required by a downstream team?
No.
Is this ticket only for tests?
Yes.
- related to
-
DRIVERS-2610 Note that load-balanced topologies are backed by sharded clusters with replica sets
- Closed
-
DRIVERS-2675 Remove use of "sharded-replicaset" in runCommand spec tests
- Closed
-
PHPLIB-1202 Assume sharded clusters use replica sets in test suite
- Closed
-
PHPLIB-464 isShardedClusterUsingReplicasets() should check all shards
- Closed
- split to
-
CDRIVER-4639 Deprecate sharded-replicaset topology type and clean up redundant runOnRequirements
- Backlog
-
CSHARP-4649 Deprecate sharded-replicaset topology type and clean up redundant runOnRequirements
- Backlog
-
NODE-5276 Deprecate sharded-replicaset topology type and clean up redundant runOnRequirements
- Backlog
-
PYTHON-3712 Deprecate sharded-replicaset topology type and clean up redundant runOnRequirements
- Backlog
-
CXX-2690 Deprecate sharded-replicaset topology type and clean up redundant runOnRequirements
- Closed
-
GODRIVER-2838 Deprecate sharded-replicaset topology type and clean up redundant runOnRequirements
- Closed
-
JAVA-4961 Deprecate sharded-replicaset topology type and clean up redundant runOnRequirements
- Closed
-
MOTOR-1132 Deprecate sharded-replicaset topology type and clean up redundant runOnRequirements
- Closed
-
PHPLIB-1132 Sync unified spec tests for revised runOnRequirements
- Closed
-
RUBY-3254 Deprecate sharded-replicaset topology type and clean up redundant runOnRequirements
- Closed
-
RUST-1649 Deprecate sharded-replicaset topology type and clean up redundant runOnRequirements
- Closed