[DRIVERS-764] Change mongos pinning test to use a code other than MaxTimeoutMSExpired for unpinning Created: 04/Nov/19  Updated: 21/Aug/23

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

Type: Task Priority: Major - P3
Reporter: Oleg Pudeyev (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on CDRIVER-3435 mongos pinning test expects no unpinn... Backlog
depends on CXX-1882 mongos pinning test expects no unpinn... Backlog
depends on NODE-2341 mongos pinning test expects no unpinn... Backlog
depends on PHPLIB-505 mongos pinning test expects no unpinn... Blocked
depends on GODRIVER-1413 mongos pinning test expects no unpinn... Closed
depends on MOTOR-466 mongos pinning test expects no unpinn... Closed
depends on PYTHON-2058 mongos pinning test expects no unpinn... Closed
depends on CSHARP-2858 mongos pinning test expects no unpinn... Closed
depends on JAVA-3513 mongos pinning test expects no unpinn... Closed
depends on RUBY-2019 Change mongos pinning test to use a c... Closed
Downstream Changes Summary:

Resync tests for: https://github.com/mongodb/specifications/commit/fb2564ad75c2bee6efca74b839c4d87554ab8274

Start date:
Driver Compliance:
Key Status/Resolution FixVersion
NODE-2341 Backlog
JAVA-3513 Fixed 3.12.0
PYTHON-2058 Duplicate
PHPLIB-505 Blocked
CXX-1882 Backlog
MOTOR-466 Done
CSHARP-2858 Fixed 2.10.1
GODRIVER-1413 Gone away
RUBY-2019 Fixed 2.12.0.rc0
CDRIVER-3435 Backlog

 Description   

In https://jira.mongodb.org/browse/SPEC-1206, the treatment of MaxTimeMSExpired (code=50) changed to be an UnknownTransactionCommitResult (https://github.com/mongodb/specifications/blob/master/source/transactions/transactions.rst#unknowntransactioncommitresult):

> The driver MUST add the "UnknownTransactionCommitResult" error label when commitTransaction fails with a server selection error, network error, retryable writes error,** MaxTimeMSExpired error,** or write concern failed / timeout.

Existing unpinning requirements require to unpin upon an UnknownTransactionCommitResult (https://github.com/mongodb/specifications/blob/master/source/transactions/transactions.rst#when-to-unpin):

> Additionally, drivers MUST unpin a ClientSession when any individual commitTransaction command attempt fails with an UnknownTransactionCommitResult error label.

However, the pinning test in https://github.com/mongodb/specifications/blob/master/source/transactions/tests/pin-mongos.yml#L330 still uses MaxTimeMSExpired error code (50) and requires that the session is NOT unpinned. This test appears to contradict the current spec language requirements.


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