Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-83786

Tighten the guarantee that flow control and ticket acquisition doesn't lead to circular waits

    • Type: Icon: Task Task
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Storage Execution
    • Execution Team 2024-01-08, Execution Team 2024-01-22

      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.

            Assignee:
            backlog-server-execution [DO NOT USE] Backlog - Storage Execution Team
            Reporter:
            kaloian.manassiev@mongodb.com Kaloian Manassiev
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated: