[DRIVERS-2802] Require 4.3.1+ server version when using failCommand errorLabels option Created: 02/Jan/24  Updated: 12/Jan/24

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

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

Issue Links:
Depends
Issue split
split to PHPLIB-1330 Require 4.3.1+ server version when us... Closed
split to JAVA-5283 Require 4.3.1+ server version when us... Backlog
split to RUBY-3366 Require 4.3.1+ server version when us... Backlog
split to CSHARP-4899 Require 4.3.1+ server version when us... Backlog
split to CXX-2808 Require 4.3.1+ server version when us... Backlog
split to GODRIVER-3085 Require 4.3.1+ server version when us... Backlog
split to PYTHON-4117 Require 4.3.1+ server version when us... Backlog
split to RUST-1818 Require 4.3.1+ server version when us... Backlog
split to CDRIVER-4806 Require 4.3.1+ server version when us... Closed
split to MOTOR-1230 Require 4.3.1+ server version when us... Closed
split to NODE-5808 Require 4.3.1+ server version when us... Scheduled
Related
is related to DRIVERS-1385 Make retryable write test error label... Implementing
Driver Changes: Needed
Downstream Changes Summary:

Sync the following spec tests with mongodb/specifications@8de8180:

  • Client-side Operations Timeout
  • Command Logging and Monitoring
  • Retryable Writes (legacy and unified)
  • Transactions (legacy)
  • Transactions Convenient API
  • Unified Test Format (valid-pass)

Update retryable writes prose test #3 to account for moving errorLabels to the top-level of the fail point configuration. Additionally, confirm that server version requirements for all modified prose tests are accurate.

Engineering Lead: Andreas Braun Andreas Braun
Start date:
Driver Compliance:
Key Status/Resolution FixVersion
CDRIVER-4806 Fixed 1.26.0
CXX-2808 Backlog
CSHARP-4899 Backlog
GODRIVER-3085 Backlog
JAVA-5283 Backlog
NODE-5808 Scheduled
MOTOR-1230 Duplicate
PYTHON-4117 Backlog 4.7
PHPLIB-1330 Fixed 1.18.0
RUBY-3366 Backlog
RUST-1818 Backlog

 Description   

Summary

Various spec tests (both legacy and unified) utilize the errorLabels option for the failCommand fail point without requiring server version 4.3.1+, which is when the option was first implemented (SERVER-43941). Some of this dates back to commits for DRIVERS-1385, when errorLabels was relocated from the writeConcernError field to the top-level of the fail point config.

I came across this issue while implementing DRIVERS-1641, which changes drivers to no longer inspect writeConcernError.code on pre-4.4 mongos responses and instead rely entirely on the server-populated error labels. On versions of mongos prior to 4.3.1, those error labels may not be populated due to failCommand ignoring the errorLabels option used in the test.

We should also note this requirement in the Unified Test Format spec, which documents the failCommand fail point.

Motivation

Is this issue urgent?

Requirement for DRIVERS-1641.

Is this ticket required by a downstream team?

No.

Is this ticket only for tests?

Yes.



 Comments   
Comment by Githook User [ 12/Jan/24 ]

Author:

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

Message: DRIVERS-2802: Fix insertedId expectations in insertOne-errorLabels (#1494)

This corrects a mistake introduced in 5fc23f40f79d18f0693e7159eba81f0e7b276715 when these tests were originally moved from insertOne-serverErrors
Branch: master
https://github.com/mongodb/specifications/commit/8de81802790c1deedbde438c62ceca4e5d2a6d63

Comment by Jeremy Mikola [ 11/Jan/24 ]

https://github.com/mongodb/specifications/pull/1494

Comment by Githook User [ 10/Jan/24 ]

Author:

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

Message: DRIVERS-2802: Require 4.3.1+ when using failCommand errorLabels option (#1489)

This also improves version info in the failCommand docs within the Unified Test Format spec.
Branch: master
https://github.com/mongodb/specifications/commit/5fc23f40f79d18f0693e7159eba81f0e7b276715

Comment by Jeremy Mikola [ 03/Jan/24 ]

https://github.com/mongodb/specifications/pull/1489

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