[DRIVERS-2577] Add runCommand specification and remove readConcern and writeConcern options from unified test runCommand operation Created: 22/Mar/23  Updated: 21/Aug/23

Status: Implementing
Project: Drivers
Component/s: Unified Test Runner
Fix Version/s: None

Type: Spec Change Priority: Unknown
Reporter: Neal Beeken Assignee: Neal Beeken
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Issue split
split to PHPLIB-1116 Add tests for runCommand spec Closed
split to JAVA-4941 Add runCommand specification and remo... Backlog
split to CDRIVER-4616 Add runCommand specification and remo... Backlog
split to CSHARP-4619 Add runCommand specification and remo... Backlog
split to CXX-2678 Add runCommand specification and remo... Backlog
split to GODRIVER-2813 Add runCommand specification and remo... Backlog
split to PYTHON-3673 Add runCommand specification and remo... Backlog
split to MOTOR-1122 Add runCommand specification and remo... Closed
split to NODE-5207 Add runCommand specification and remo... Closed
split to RUBY-3242 Add runCommand specification and remo... Closed
split to RUST-1636 Add runCommand specification and remo... Closed
Related
related to DRIVERS-2675 Remove use of "sharded-replicaset" in... Closed
Driver Changes: Needed
Downstream Changes Summary:
  • Drivers should make note of RunCommand implementation details which requires drivers do not inspect nor modify the user's command document.
    • If your driver does modify user input, file a follow up ticket tracking changing that as a future improvement.
  • Add salient documentation for:

A driver MUST not inspect the user's command, this includes checking for the fields a driver MUST attach to the command sent as described below. Depending on a driver's BSON implementation this can result in these fields being overwritten or duplicated, a driver SHOULD document that using these fields has undefined behavior.

Engineering Lead: Daria Pardue Daria Pardue
Start date:
Driver Compliance:
Key Status/Resolution FixVersion
CDRIVER-4616 Backlog
CXX-2678 Backlog
CSHARP-4619 Backlog
GODRIVER-2813 Backlog
JAVA-4941 Backlog
NODE-5207 Fixed 5.4.0
MOTOR-1122 Duplicate
PYTHON-3673 Backlog
PHPLIB-1116 Fixed 1.16.0
RUBY-3242 Fixed 2.18.3
RUST-1636 Fixed 2.6.0

 Description   

Summary

Add a runCommand specification based on the runCommand requirements called out by other specs.

Additionally,

The unified test format runCommand operation states that readConcern and writeConcern are supported options. However, runCommand implementations are not supposed to apply readConcern nor writeConcern options and users are instead expected to define those settings on the command document themselves.

We currently do not have unified tests that use these options. Any driver that implemented support for them in their unified runner can remove the logic in favor of potential future tests that put these settings in the command documents themselves.

Motivation

Who is the affected end user?

Driver engineers with a unified test runner.

How does this affect the end user?

N/A

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

Removing the options now can prevent any tests from utilizing them as we add more unified tests to our specifications.

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

N/A

Is this issue urgent?

Not urgent. We need to take care about not adding tests that rely on these options as currently the docs will not inform a spec writer they are intended to be removed and are not supported in most drivers.

Is this ticket required by a downstream team?

No.

Is this ticket only for tests?

Yes

Acceptance Criteria

  • Remove the writeConcern and readConcern options from the list of supported options for the runCommand unified operation in the unified test format spec


 Comments   
Comment by Githook User [ 09/May/23 ]

Author:

{'name': 'Jeremy Mikola', 'email': 'jmikola@gmail.com', 'username': 'jmikola'}

Message: DRIVERS-2577: $readPreference is not sent to standalone server (#1416)

Also test that primary $readPreference is never set
Branch: master
https://github.com/mongodb/specifications/commit/d697477053972de77fb0e67bbba5228151bf76dd

Comment by Jeremy Mikola [ 08/May/23 ]

PR to fix test failures on standalones: https://github.com/mongodb/specifications/pull/1416

Comment by Githook User [ 25/Apr/23 ]

Author:

{'name': 'Neal Beeken', 'email': 'neal.beeken@mongodb.com', 'username': 'nbbeeken'}

Message: DRIVERS-2577: runCommand set min server version correctly (#1410)
Branch: master
https://github.com/mongodb/specifications/commit/146964a452f2d981f9b6b6d6063703038ed44d13

Comment by Githook User [ 21/Apr/23 ]

Author:

{'name': 'Neal Beeken', 'email': 'neal.beeken@mongodb.com', 'username': 'nbbeeken'}

Message: DRIVERS-2577: add a runCommand specification (#1389)

Co-authored-by: Jeremy Mikola <jmikola@gmail.com>
Co-authored-by: Durran Jordan <durran@gmail.com>
Branch: master
https://github.com/mongodb/specifications/commit/ab66eaf6f7e2bbeb5218672bebaf5118faf8209c

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