[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: |
|
||||||||||||||||
| 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: (cherry picked from commit 7d928fd2c25088c8f45ca6f5fbc9e6f92937fb26) |
| Comment by Githook User [ 20/Apr/22 ] |
|
Author: {'name': 'Israel Hsu', 'email': 'israel.hsu@mongodb.com', 'username': 'israelhsu'}Message: (cherry picked from commit 7d928fd2c25088c8f45ca6f5fbc9e6f92937fb26) |
| Comment by Githook User [ 18/Mar/22 ] |
|
Author: {'name': 'Israel Hsu', 'email': 'israel.hsu@mongodb.com', 'username': 'israelhsu'}Message: |
| 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. |