From ebf68ba0923844afefd6a9e237d478672da5e40d Mon Sep 17 00:00:00 2001 From: Eric Milkie Date: Tue, 15 Mar 2016 08:34:16 -0400 Subject: SERVER-23148 patch multi_rs.js to ensure replSetMaintenance command succeeds --- jstests/multiVersion/libs/multi_rs.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/jstests/multiVersion/libs/multi_rs.js b/jstests/multiVersion/libs/multi_rs.js index 109db580453..1dca614ebe4 100644 --- a/jstests/multiVersion/libs/multi_rs.js +++ b/jstests/multiVersion/libs/multi_rs.js @@ -49,7 +49,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); } -- cgit v1.2.1