summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Benvenuto <mark.benvenuto@mongodb.com>2017-04-17 17:59:05 -0400
committerMark Benvenuto <mark.benvenuto@mongodb.com>2017-04-17 17:59:05 -0400
commitc67da7ade5e543d8d2665989597543dffb3a7670 (patch)
tree4d70a732d65d610186db166a6cd0859657e5f67d
parent204f1ea4992d45c561a888967d791751328cd677 (diff)
downloadmongo-c67da7ade5e543d8d2665989597543dffb3a7670.tar.gz
SERVER-25226 diagdata.js needs to wait for FTDC to startup
(cherry picked from commit 96afd7d4dc2f2add75a713b1c594d2cdfb75ee14)
-rw-r--r--jstests/core/diagdata.js28
1 files changed, 21 insertions, 7 deletions
diff --git a/jstests/core/diagdata.js b/jstests/core/diagdata.js
index eb4ce0fb3ef..490e4a3eb2b 100644
--- a/jstests/core/diagdata.js
+++ b/jstests/core/diagdata.js
@@ -6,14 +6,28 @@
// Verify we require admin database
assert.commandFailed(db.diagdata.runCommand("getDiagnosticData"));
- var result = db.adminCommand("getDiagnosticData");
- assert.commandWorked(result);
+ // We need to retry a few times if run this test immediately after mongod is started as FTDC may
+ // not have run yet.
+ var foundGoodDocument = false;
- var data = result.data;
+ for (var i = 0; i < 60; ++i) {
+ var result = db.adminCommand("getDiagnosticData");
+ assert.commandWorked(result);
- // Check for a few common properties to ensure we got data
- assert(data.hasOwnProperty("start"));
- assert(data.hasOwnProperty("serverStatus"));
- assert(data.hasOwnProperty("end"));
+ var data = result.data;
+
+ if (!data.hasOwnProperty("start")) {
+ // Wait a little longer for FTDC to start
+ sleep(500);
+ } else {
+ // Check for a few common properties to ensure we got data
+ assert(data.hasOwnProperty("serverStatus"),
+ "does not have 'serverStatus' in '" + tojson(data) + "'");
+ assert(data.hasOwnProperty("end"), "does not have 'end' in '" + tojson(data) + "'");
+ foundGoodDocument = true;
+ }
+ }
+ assert(foundGoodDocument,
+ "getDiagnosticData failed to return a non-empty command, is FTDC running?");
})();