From a109a23f12a957e127814cd9bd82ce18f8437f9b Mon Sep 17 00:00:00 2001 From: Judah Schvimer Date: Mon, 26 Jun 2017 10:17:20 -0400 Subject: SERVER-29540 awaitNodesAgreeOnPrimary logs why it retries (cherry picked from commit fc752b3b94b5d821e5f1861c05c27c8a5dc550cd) --- src/mongo/shell/replsettest.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) 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); }; -- cgit v1.2.1