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

Add transaction information to lockInfo

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major - P3
    • Resolution: Won't Do
    • None
    • None
    • None
    • None
    • Storage Execution

    Description

      We're debugging a recent deadlock around replSetReconfig. Our hypothesis is that we have active transactions, which are holding a global IX lock, and that's blocking replSetReconfig's X lock (which seems consistent with SERVER-43242 and SERVER-32685). We have a dump of both lockInfo and currentOp while replSetReconfig was blocked, so we can confirm that replSetReconfig is waiting for a global X lock (on 4.0 – SERVER-37945 would seemingly fix this on 4.2, but that's a separate issue). However, we only see the following (repeated quite a few times) on the "granted" list:

            {
              "compatibleFirst": false,
              "convertMode": "NONE",
              "enqueueAtFront": false,
              "mode": "IX"
            },
      

      Our best guess is that these are active transactions, but it's difficult to prove that. On other locks we see "opid", "connectionId", and "desc", so we assume these aren't associated with an active op. It'd be nice if "lsid" and "txnNumber" were included as well.

      Attachments

        Issue Links

          Activity

            People

              backlog-server-execution Backlog - Storage Execution Team
              bartle David Bartley
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: