[GODRIVER-2348] Make CSOT feature-gated behavior the default Created: 18/Mar/22  Updated: 06/Feb/24

Status: In Progress
Project: Go Driver
Component/s: None
Affects Version/s: None
Fix Version/s: 2.0.0

Type: Improvement Priority: Major - P3
Reporter: Benji Rewis (Inactive) Assignee: Preston Vasquez
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Gantt Dependency
has to be done after GODRIVER-2342 Deprecate SocketTimeout, wTimeout, Ma... Closed
has to be done after GODRIVER-2762 Use minimum RTT for CSOT maxTimeMS ca... Closed
Epic Link: Go Driver 2.0: Driver

 Description   

Certain CSOT behavior is "feature-gated" in pre-2.0 versions of the driver when Timeout is declared:

  1. Retrying all operations as many times as the context allows
  2. Automatic calculation and appension of “maxTimeMS” 
  3. Using the min RTT as a threshold for “short-circuiting” (described in the “Command Execution” section)

In 2.0, fully remove all deprecated options and methods, and make the above behaviors the default (not gated by the presence of Timeout).

Definition of done:

  • Update connectTimeoutMS to cover all blocking operations during connection establishment, including MongoDB handshake and auth.
  • Remove all deprecated timeout options.
  • All behavior conditionally enabled by the presence of a timeoutMS configuration should be the new default behavior.


 Comments   
Comment by Preston Vasquez [ 06/Feb/24 ]

DRIVERS-2829 will add compatibility support to the schema which will allow us to generically skip unified tests that use legacy timeout logic removed in v1, see he full list of tests here. In the meantime, the Go Driver will

1. Skip all legacy test options using the "SkipReason" field
2. Skip unified spec test options using description names, in order to prevent us from erroneously skipping tests that are implemented between the CSOT v2 updates and whenever DRIVERES-2829 is implemented
3. Add the CSOT analogue unified spec tests required by DRIVERS-2829 to definitively ensure that our test coverage is not lowered by efforts to remove legacy timeouts.

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