[SERVER-83786] Tighten the guarantee that flow control and ticket acquisition doesn't lead to circular waits Created: 01/Dec/23  Updated: 30/Jan/24

Status: Backlog
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Major - P3
Reporter: Kaloian Manassiev Assignee: Backlog - Storage Execution Team
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
is related to SERVER-76834 Circular wait dependency between PBWM... Closed
Assigned Teams:
Storage Execution
Sprint: Execution Team 2024-01-08, Execution Team 2024-01-22
Participants:

 Description   

The flow control and ticketing systems in theory sit above the locking hierarchy, but there are some exceptions to this rule, most notably multi-statement transactions.

This inversion of the locking order has been source of bugs in the past, such as SERVER-76834.

I am filing this ticket to request that we document somewhere the rules based on which we are certain that there are no deadlocks due to this inversion and possibly to add testing and/or invariants.
The testing that I am imagining is for example having a successful (albeit slow) concurrency run with a max ticket number of 1.


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