summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSara Golemon <sara.golemon@mongodb.com>2021-05-26 20:46:27 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-06-22 16:03:48 +0000
commit2ebd852ef9888d39b4c68b13b4d1bbe97c352bec (patch)
tree0aad6733d793f54471afef21379c5042f6b64abf
parentf14d6857c9956ada53cb56d9ac37dca1e5c1e811 (diff)
downloadmongo-2ebd852ef9888d39b4c68b13b4d1bbe97c352bec.tar.gz
SERVER-57328 Make ReplSetTest.upgradeSet() tolerant of reelections
(cherry picked from commit 5ef956df508b16cbc15cd4360f74cdea0cab34d3)
-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 7d180f01fbe..ab79d6d8c9a 100644
--- a/jstests/multiVersion/libs/multi_rs.js
+++ b/jstests/multiVersion/libs/multi_rs.js
@@ -14,7 +14,12 @@ ReplSetTest.prototype.upgradeSet = function(options, user, pwd) {
this.upgradeSecondaries(primary, options, user, pwd);
// Then upgrade the primary after stepping down.
- this.upgradePrimary(primary, options, user, pwd);
+ if (this.getPrimary() == primary) {
+ this.upgradePrimary(primary, Object.assign({}, options), user, pwd);
+ } else {
+ // An election occured during upgrade, old primary is now a secondary.
+ this.upgradeMembers([primary], Object.assign({}, options), user, pwd);
+ }
};
ReplSetTest.prototype.upgradeSecondaries = function(primary, options, user, pwd) {