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

    XMLWordPrintableJSON

Details

    • Icon: Task Task
    • Resolution: Unresolved
    • Icon: Major - P3 Major - P3
    • None
    • None
    • None
    • None
    • Storage Execution
    • Execution Team 2024-01-08, Execution Team 2024-01-22

    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.

      Attachments

        Activity

          People

            backlog-server-execution Backlog - Storage Execution Team
            kaloian.manassiev@mongodb.com Kaloian Manassiev
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated: