summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSara Golemon <sara.golemon@mongodb.com>2021-05-26 20:46:27 +0000
committerSara Golemon <sara.golemon@mongodb.com>2021-06-22 15:22:37 +0000
commit0bec355b6efc4cda2d0d0fc6701264ab40a2ab7f (patch)
treec7c16c178361949410c0f2d7f4ec16204c04eaaf
parent4610b9a4678e2141b559ba3ed7f033b4814c068d (diff)
downloadmongo-0bec355b6efc4cda2d0d0fc6701264ab40a2ab7f.tar.gz
SERVER-57328 Make ReplSetTest.upgradeSet() tolerant of reelections
(cherry picked from commit 5ef956df508b16cbc15cd4360f74cdea0cab34d3)
-rw-r--r--jstests/multiVersion/libs/multi_rs.js9
1 files changed, 6 insertions, 3 deletions
diff --git a/jstests/multiVersion/libs/multi_rs.js b/jstests/multiVersion/libs/multi_rs.js
index 68ccef51f7e..48d8f57bd2e 100644
--- a/jstests/multiVersion/libs/multi_rs.js
+++ b/jstests/multiVersion/libs/multi_rs.js
@@ -31,9 +31,12 @@ ReplSetTest.prototype.upgradeSet = function(options, user, pwd) {
}
}
- assert.eq(
- this.getPrimary(), primary, "Primary changed unexpectedly after upgrading secondaries");
- this.upgradePrimary(primary, Object.assign({}, 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);
+ }
};
function mergeNodeOptions(nodeOptions, options) {