[DRIVERS-2395] Add test that reads are not retried in a transaction Created: 22/Jul/22  Updated: 01/Sep/23  Resolved: 01/Sep/23

Status: Closed
Project: Drivers
Component/s: Retryability, Transactions
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: Jeffrey Yemin Assignee: Jeffrey Yemin
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Issue split
split to CXX-2552 Add test that reads are not retried i... Closed
split to PHPLIB-918 Add test that reads are not retried i... Closed
split to CDRIVER-4436 Add test that reads are not retried i... Closed
split to CSHARP-4267 Add test that reads are not retried i... Closed
split to GODRIVER-2502 Add test that reads are not retried i... Closed
split to JAVA-4686 Add test that reads are not retried i... Closed
split to MOTOR-1000 Add test that reads are not retried i... Closed
split to NODE-4465 Add test that reads are not retried i... Closed
split to PYTHON-3368 Add test that reads are not retried i... Closed
split to RUBY-3063 Add test that reads are not retried i... Closed
split to RUST-1418 Add test that reads are not retried i... Closed
Related
related to JAVA-4684 Read operations in transactions are i... Closed
Driver Changes: Needed
Downstream Changes Summary:

Drivers should update unified transaction tests to this commit.

Driver Compliance:
Key Status/Resolution FixVersion
CDRIVER-4436 Done
CXX-2552 Fixed 3.9.0
CSHARP-4267 Fixed 2.18.0
GODRIVER-2502 Done
JAVA-4686 Done
NODE-4465 Fixed 4.9.0
MOTOR-1000 Duplicate
PYTHON-3368 Fixed 4.3
PHPLIB-918 Fixed 1.15.0
RUBY-3063 Fixed 2.18.1
RUST-1418 Fixed 2.4.0
SWIFT-1610 Fixed 1.4.0

 Description   

Summary

Add a missing test case to assert that a driver does not retry a read when in a transaction. This would have prevented JAVA-4684 regression.

The requirement is in the retryable reads specification in the when not to allow retry section.

Motivation

Who is the affected end user?

Driver authors

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

This seems like an easy bug for a driver to have or introduce, and it's hard to detect since it depends on a server failure at just the right time

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

Applications won't get the benefit of the convent transaction API's automatic retry mechanism if a driver has this bug

Is this issue urgent?

Yes, since we want to fix the Java driver bug and need a test to assert correct behavior.

Is this ticket required by a downstream team?

No

Is this ticket only for tests?

It's a missing test of required behavior



 Comments   
Comment by Githook User [ 22/Jul/22 ]

Author:

{'name': 'Jeff Yemin', 'email': 'jeff.yemin@mongodb.com', 'username': 'jyemin'}

Message: DRIVERS-2395: Remove single topology
Branch: master
https://github.com/mongodb/specifications/commit/bafb024be8202b1676a3c6632e8a3eb9cf36209b

Comment by Githook User [ 22/Jul/22 ]

Author:

{'name': 'Jeff Yemin', 'email': 'jeff.yemin@mongodb.com', 'username': 'jyemin'}

Message: DRIVERS-2395: Add test that read is not retried in a transaction (#1277)
Branch: master
https://github.com/mongodb/specifications/commit/c5d1c778dba6439de72e6a3dbbaeab9de7539306

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