-
Type: Improvement
-
Resolution: Done
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: MapReduce
-
None
-
Query
-
Fully Compatible
Below I have two mr jobs with infinite loops in the map function. I believe op 117 is running and holding the js mutex, while 122 is not. If I kill 122 nothing happens (it does not stop running) until 117 is killed as well.
In this case it's not obvious from the currentOp output which op needs to be killed so that others can run.
> db.currentOp().inprog
[
{
"opid" : 117,
"active" : true,
"lockType" : "read",
"waitingForLock" : false,
"secs_running" : 12,
"op" : "query",
"ns" : "test.c",
"query" : {
"mapreduce" : "c",
"map" : function cf_47f() {
while (1) {
}
},
"reduce" : function cf_48f()
"client" : "127.0.0.1:51528",
"desc" : "conn",
"msg" : "m/r: (1/3) emit phase 0/1 0%"
},
{
"opid" : 122,
"active" : true,
"waitingForLock" : false,
"secs_running" : 9,
"op" : "query",
"ns" : "?",
"query" : {
"mapreduce" : "c",
"map" : function cf_49f() {
while (1) {
}
},
"reduce" : function cf_50f() {} }
,
"client" : "127.0.0.1:51563",
"desc" : "conn"
}
]
- is depended on by
-
SERVER-387 currentOp() and killOp() don't work right with db.eval()
- Closed