summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJudah Schvimer <judah@mongodb.com>2017-06-26 10:17:20 -0400
committerJudah Schvimer <judah@mongodb.com>2017-07-14 16:42:14 -0400
commita109a23f12a957e127814cd9bd82ce18f8437f9b (patch)
treea28d73e1d91c9943dd300f6eb71edb540e799b15
parentc161a23f10dbe960d4b9c49b58bd22fe415bf1b9 (diff)
downloadmongo-a109a23f12a957e127814cd9bd82ce18f8437f9b.tar.gz
SERVER-29540 awaitNodesAgreeOnPrimary logs why it retries
(cherry picked from commit fc752b3b94b5d821e5f1861c05c27c8a5dc550cd)
-rw-r--r--src/mongo/shell/replsettest.js16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/mongo/shell/replsettest.js b/src/mongo/shell/replsettest.js
index fe345e13d69..2d4334c3a8a 100644
--- a/src/mongo/shell/replsettest.js
+++ b/src/mongo/shell/replsettest.js
@@ -533,6 +533,12 @@ var ReplSetTest = function(opts) {
timeout = timeout || self.kDefaultTimeoutMS;
nodes = nodes || self.nodes;
expectedPrimaryNodeId = expectedPrimaryNodeId || -1;
+ if (expectedPrimaryNodeId === -1) {
+ print("AwaitNodesAgreeOnPrimary: Waiting for nodes to agree on any primary.");
+ } else {
+ print("AwaitNodesAgreeOnPrimary: Waiting for nodes to agree on " +
+ nodes[expectedPrimaryNodeId].name + " as primary.");
+ }
assert.soonNoExcept(function() {
var primary = expectedPrimaryNodeId;
@@ -544,6 +550,10 @@ var ReplSetTest = function(opts) {
if (replSetGetStatus.members[j].state === ReplSetTest.State.PRIMARY) {
// Node sees two primaries.
if (nodesPrimary !== -1) {
+ print("AwaitNodesAgreeOnPrimary: Retrying because " + nodes[i].name +
+ " thinks both " + nodes[nodesPrimary].name + " and " +
+ nodes[j].name + " are primary.");
+
return false;
}
nodesPrimary = j;
@@ -551,6 +561,8 @@ var ReplSetTest = function(opts) {
}
// Node doesn't see a primary.
if (nodesPrimary < 0) {
+ print("AwaitNodesAgreeOnPrimary: Retrying because " + nodes[i].name +
+ " does not see a primary.");
return false;
}
@@ -558,10 +570,14 @@ var ReplSetTest = function(opts) {
// If we haven't seen a primary yet, set it to this.
primary = nodesPrimary;
} else if (primary !== nodesPrimary) {
+ print("AwaitNodesAgreeOnPrimary: Retrying because " + nodes[i].name +
+ " thinks the primary is " + nodes[nodesPrimary].name + " instead of " +
+ nodes[primary].name);
return false;
}
}
+ print("AwaitNodesAgreeOnPrimary: Nodes agreed on primary " + nodes[primary].name);
return true;
}, "Awaiting nodes to agree on primary", timeout);
};