[SERVER-60758] Prevent dbVersion refreshes from failing transactions in txn_recover_decision_using_recovery_router.js Created: 15/Oct/21  Updated: 29/Oct/23  Resolved: 18/Mar/22

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 4.4.14, 6.0.0-rc0, 5.0.9, 4.4.15

Type: Bug Priority: Major - P3
Reporter: Jack Mulrow Assignee: Israel Hsu
Resolution: Fixed Votes: 0
Labels: sharding-nyc-subteam3, sharding-wfbf-day
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Backports
Depends
Related
related to SERVER-69234 Make txn_recover_decision_using_recov... Backlog
Backwards Compatibility: Fully Compatible
Operating System: ALL
Backport Requested:
v5.0, v4.4, v4.2
Sprint: Sharding 2022-02-21, Sharding 2022-03-07, Sharding NYC 2022-03-21
Participants:
Linked BF Score: 33
Story Points: 1

 Description   

txn_recover_decision_using_recovery_router.js runs transactions without transient error retry logic. If a database version refresh is triggered concurrently with a transaction, the transaction can reach the 5ms lock timeout waiting for an IX database lock and fail with a transient error. The test should be modified to not fail because of this, either by adding retry logic or forcing shards to refresh their database version earlier when no transactions are running.



 Comments   
Comment by Githook User [ 21/Apr/22 ]

Author:

{'name': 'Israel Hsu', 'email': 'israel.hsu@mongodb.com', 'username': 'israelhsu'}

Message: SERVER-60758 Force refresh of dbVersion before running transactions

(cherry picked from commit 7d928fd2c25088c8f45ca6f5fbc9e6f92937fb26)
Branch: v4.4
https://github.com/mongodb/mongo/commit/6836630168e0ff3a1298ac44bcf5c33f8012cf06

Comment by Githook User [ 20/Apr/22 ]

Author:

{'name': 'Israel Hsu', 'email': 'israel.hsu@mongodb.com', 'username': 'israelhsu'}

Message: SERVER-60758 Force refresh of dbVersion before running transactions

(cherry picked from commit 7d928fd2c25088c8f45ca6f5fbc9e6f92937fb26)
Branch: v5.0
https://github.com/mongodb/mongo/commit/d001194fb86b590f73a7171c7cb6a317a93a2300

Comment by Githook User [ 18/Mar/22 ]

Author:

{'name': 'Israel Hsu', 'email': 'israel.hsu@mongodb.com', 'username': 'israelhsu'}

Message: SERVER-60758 Force refresh of dbVersion before running transactions
Branch: master
https://github.com/mongodb/mongo/commit/7d928fd2c25088c8f45ca6f5fbc9e6f92937fb26

Comment by Jack Mulrow [ 09/Feb/22 ]

Depending on the direction we go, we can make the test retry using a helper like the ones in this library or we can force shards to refresh their database versions using the `_flushRoutingTableCacheUpdates` command against the possibly stale shards like in this test.

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