Details
-
Bug
-
Status: Closed
-
Critical - P2
-
Resolution: Fixed
-
None
-
None
-
ALL
Description
A recent change to servers_misc.js seems to have caused manual execution of jstests calling startParallelShell to stop working properly. Here is a run of currentop.js tree 4ba934d3459b4ef7384ff55b5f2f0d20380930a1:
Aaron-Staples-MacBook-Pro:mongo8 aaron$ ./mongo jstests/currentop.js && echo success
|
MongoDB shell version: 2.3.0-pre-
|
connecting to: test
|
BEGIN currentop.js
|
count:100
|
start shell
|
Thu Sep 13 20:25:57 shell: started program /Users/aaron/src/mongo8/mongo --eval db.jstests_currentop.count( { '$where': function() { sleep(1000); } } ) 127.0.0.1/admin
|
sleep
|
sh15244| MongoDB shell version: 2.3.0-pre-
|
sh15244| connecting to: 127.0.0.1/admin
|
sh15244| 0
|
inprog:
|
[ ]
|
|
inprog:
|
[ ]
|
|
wait have some ops
|
[ ]
|
[ ]
|
[ ]
|
[ ]
|
[ ]
|
[ ]
|
[ ]
|
[ ]
|
[ ]
|
[ ]
|
[ ]
|
[ ]
|
[ ]
|
[ ]
|
[ ]
|
[ ]
|
[ ]
|
[ ]
|
[ ]
|
[ ]
|
[ ]
|
[ ]
|
[ ]
|
[ ]
|
[ ]
|
[ ]
|
[ ]
|
[ ]
|
[ ]
|
|
...
|
|
assert.soon failed: function () {
|
return ops({'locks.^test':"r", ns:"test.jstests_currentop"}).length + ops({'locks.^test':"R", ns:"test.jstests_currentop"}).length >= 1;
|
}, msg:have_some_ops
|
Error("Printing Stack Trace")@:0
|
()@src/mongo/shell/utils.js:37
|
("assert.soon failed: function () {\n return ops({'locks.^test':\"r\", ns:\"test.jstests_currentop\"}).length + ops({'locks.^test':\"R\", ns:\"test.jstests_currentop\"}).length >= 1;\n}, msg:have_some_ops")@src/mongo/shell/utils.js:58
|
((function () {return ops({'locks.^test':"r", ns:"test.jstests_currentop"}).length + ops({'locks.^test':"R", ns:"test.jstests_currentop"}).length >= 1;}),"have_some_ops")@src/mongo/shell/utils.js:167
|
@jstests/currentop.js:41
|
|
Thu Sep 13 20:26:28 uncaught exception: assert.soon failed: function () {
|
return ops({'locks.^test':"r", ns:"test.jstests_currentop"}).length + ops({'locks.^test':"R", ns:"test.jstests_currentop"}).length >= 1;
|
}, msg:have_some_ops
|
failed to load: jstests/currentop.js
|
This patch seems to make it work again (though it may have some other adverse consequences):
diff --git a/src/mongo/shell/servers_misc.js b/src/mongo/shell/servers_misc.js
|
index 99a94b9..0d094b4 100644
|
--- a/src/mongo/shell/servers_misc.js
|
+++ b/src/mongo/shell/servers_misc.js
|
@@ -269,7 +269,7 @@ function startParallelShell( jsCode, port ){
|
|
if (typeof db == "object") {
|
// Must start connected to admin DB so auth works when running tests with auth.
|
- args.push(db.getMongo().host + "/admin");
|
+ args.push(db.getMongo().host);
|
}
|
|
x = startMongoProgramNoConnect.apply(null, args);
|