diff options
author | Lingzhi Deng <lingzhi.deng@mongodb.com> | 2020-05-08 14:26:53 -0400 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2020-05-11 14:00:26 +0000 |
commit | f2aa1ffe05804aa3cc21ad5f980bca998dde09f3 (patch) | |
tree | a690f8ebde6c8f24238403f4e24b343afaaae751 | |
parent | 42acb126b4609f20c559d80debd0e9d2db9cff44 (diff) | |
download | mongo-f2aa1ffe05804aa3cc21ad5f980bca998dde09f3.tar.gz |
SERVER-48046: {replSetFreeze: 0} done in RollbackTest.restartNode() should be resilient of network errors
-rw-r--r-- | jstests/replsets/libs/rollback_test.js | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/jstests/replsets/libs/rollback_test.js b/jstests/replsets/libs/rollback_test.js index d37f8d1f691..d8f5163e8c4 100644 --- a/jstests/replsets/libs/rollback_test.js +++ b/jstests/replsets/libs/rollback_test.js @@ -597,8 +597,19 @@ function RollbackTest(name = "RollbackTest", replSet) { // because we have configured the replica set with high electionTimeoutMillis. assert.eq(newPrimary, curPrimary, "Did not elect the same node as primary"); - // Unfreeze the current secondary so that it can step up again. - assert.commandWorked(curSecondary.adminCommand({replSetFreeze: 0})); + // Unfreeze the current secondary so that it can step up again. Retry on network errors + // in case the current secondary is in ROLLBACK state. + assert.soon(() => { + try { + assert.commandWorked(curSecondary.adminCommand({replSetFreeze: 0})); + return true; + } catch (e) { + if (isNetworkError(e)) { + return false; + } + throw e; + } + }, `Failed to unfreeze current secondary ${curSecondary.host}`); } curSecondary = rst.getSecondary(); |