summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Milkie <milkie@10gen.com>2016-03-15 08:34:16 -0400
committerBenety Goh <benety@mongodb.com>2017-08-14 11:25:08 -0400
commitc89e23461f28bb6a0cc3684f726912278385af59 (patch)
tree36ed1ead9facbb9140a2bc48468e3e9e2c7206c0
parent8c4994913a437d2f26e9596d60a63cd235a35f02 (diff)
downloadmongo-c89e23461f28bb6a0cc3684f726912278385af59.tar.gz
SERVER-23148 patch multi_rs.js to ensure replSetMaintenance command succeeds
(cherry picked from commit ebf68ba0923844afefd6a9e237d478672da5e40d)
-rw-r--r--jstests/multiVersion/libs/multi_rs.js7
1 files changed, 6 insertions, 1 deletions
diff --git a/jstests/multiVersion/libs/multi_rs.js b/jstests/multiVersion/libs/multi_rs.js
index 673be42d3df..da976c7f4dc 100644
--- a/jstests/multiVersion/libs/multi_rs.js
+++ b/jstests/multiVersion/libs/multi_rs.js
@@ -50,7 +50,12 @@ ReplSetTest.prototype.upgradeNode = function(node, opts, user, pwd) {
var isMaster = node.getDB('admin').runCommand({isMaster: 1});
if (!isMaster.arbiterOnly) {
- assert.commandWorked(node.adminCommand("replSetMaintenance"));
+ // Must retry this command, as it might return "currently running for election" and fail.
+ // Node might still be running for an election that will fail because it lost the election
+ // race with another node, at test initialization. See SERVER-23133.
+ assert.soon(function() {
+ return (node.adminCommand("replSetMaintenance").ok);
+ });
this.waitForState(node, ReplSetTest.State.RECOVERING);
}