|
See below for an interesting currentOp: a long MR job that doesnt yield (1726) which blocks a normal write (1939) which blocks both getMore on oplog.rs and authentication requests from heartbeats.
The fix to ensure yielding should prevent long blocking, but the locking doesnt seem right..
why is MR taking a global read lock ("^" : "r")?
rs0:PRIMARY> db.currentOp()
|
{
|
"inprog" : [
|
{
|
"opid" : 1942,
|
"active" : true,
|
"secs_running" : 15,
|
"op" : "query",
|
"ns" : "",
|
"query" : {
|
"authenticate" : 1,
|
"nonce" : "a985c344174b519b",
|
"user" : "__system",
|
"key" : "34cdda5b4eb2614cfb649072bc3e9f74"
|
},
|
"client" : "10.149.7.57:42550",
|
"desc" : "conn45",
|
"threadId" : "0x7f55f25b0700",
|
"connectionId" : 45,
|
"locks" : {
|
"^" : "r"
|
},
|
"waitingForLock" : true,
|
"numYields" : 0,
|
"lockStats" : {
|
"timeLockedMicros" : {
|
|
},
|
"timeAcquiringMicros" : {
|
|
}
|
}
|
},
|
{
|
"opid" : 1934,
|
"active" : true,
|
"secs_running" : 17,
|
"op" : "getmore",
|
"ns" : "local.oplog.rs",
|
"query" : {
|
"ts" : {
|
"$gte" : {
|
"t" : 1371622295,
|
"i" : 10
|
}
|
}
|
},
|
"client" : "10.149.7.57:42527",
|
"desc" : "conn22",
|
"threadId" : "0x7f58fe1fa700",
|
"connectionId" : 22,
|
"locks" : {
|
"^" : "r"
|
},
|
"waitingForLock" : true,
|
"numYields" : 0,
|
"lockStats" : {
|
"timeLockedMicros" : {
|
"r" : NumberLong(91),
|
"w" : NumberLong(0)
|
},
|
"timeAcquiringMicros" : {
|
"r" : NumberLong(9),
|
"w" : NumberLong(0)
|
}
|
}
|
},
|
{
|
"opid" : 1936,
|
"active" : true,
|
"secs_running" : 17,
|
"op" : "getmore",
|
"ns" : "local.oplog.rs",
|
"query" : {
|
"ts" : {
|
"$gte" : {
|
"t" : 1371227968,
|
"i" : 9
|
}
|
}
|
},
|
"client" : "10.149.7.57:42510",
|
"desc" : "conn4",
|
"threadId" : "0x7f58fdcf3700",
|
"connectionId" : 4,
|
"locks" : {
|
"^" : "r"
|
},
|
"waitingForLock" : true,
|
"numYields" : 0,
|
"lockStats" : {
|
"timeLockedMicros" : {
|
"r" : NumberLong(35),
|
"w" : NumberLong(0)
|
},
|
"timeAcquiringMicros" : {
|
"r" : NumberLong(6),
|
"w" : NumberLong(0)
|
}
|
}
|
},
|
{
|
"opid" : 1726,
|
"active" : true,
|
"secs_running" : 51,
|
"op" : "query",
|
"ns" : "CCiRecon_I007.iReconTxCollection",
|
"query" : {
|
"$msg" : "query not recording (too large)"
|
},
|
"client" : "127.0.0.1:43853",
|
"desc" : "conn7",
|
"threadId" : "0x7f58fdbf2700",
|
"connectionId" : 7,
|
"locks" : {
|
"^" : "r",
|
"^CCiRecon_I007" : "R"
|
},
|
"waitingForLock" : false,
|
"msg" : "m/r: (1/3) emit phase M/R: (1/3) Emit Progress: 77293/77293 100%",
|
"progress" : {
|
"done" : 77293,
|
"total" : 77293
|
},
|
"numYields" : 824,
|
"lockStats" : {
|
"timeLockedMicros" : {
|
"r" : NumberLong(70118532),
|
"w" : NumberLong(2995)
|
},
|
"timeAcquiringMicros" : {
|
"r" : NumberLong(34996341),
|
"w" : NumberLong(35)
|
}
|
}
|
},
|
{
|
"opid" : 1939,
|
"active" : false,
|
"op" : "insert",
|
"ns" : "",
|
"insert" : {
|
|
},
|
"client" : "10.149.7.57:42536",
|
"desc" : "conn31",
|
"threadId" : "0x7f55f881d700",
|
"connectionId" : 31,
|
"locks" : {
|
"^CCiRecon_I007" : "W"
|
},
|
"waitingForLock" : true,
|
"numYields" : 0,
|
"lockStats" : {
|
"timeLockedMicros" : {
|
|
},
|
"timeAcquiringMicros" : {
|
|
}
|
}
|
},
|
{
|
"opid" : 1945,
|
"active" : true,
|
"secs_running" : 3,
|
"op" : "query",
|
"ns" : "",
|
"query" : {
|
"authenticate" : 1,
|
"nonce" : "89051e317293e45",
|
"user" : "__system",
|
"key" : "ba0fe3a433b8204bb1f3a8ae97c4e910"
|
},
|
"client" : "10.149.7.57:42551",
|
"desc" : "conn46",
|
"threadId" : "0x7f58fe2fb700",
|
"connectionId" : 46,
|
"locks" : {
|
"^" : "r"
|
},
|
"waitingForLock" : true,
|
"numYields" : 0,
|
"lockStats" : {
|
"timeLockedMicros" : {
|
|
},
|
"timeAcquiringMicros" : {
|
|
}
|
}
|
}
|
]
|
}
|
|