-
Type: Improvement
-
Resolution: Won't Do
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Storage Execution
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.
- is related to
-
SERVER-43910 include Client/OpCtx information in LockManager::dump() output
- Closed