diff options
author | Mark Benvenuto <mark.benvenuto@mongodb.com> | 2017-04-17 17:59:05 -0400 |
---|---|---|
committer | Mark Benvenuto <mark.benvenuto@mongodb.com> | 2017-04-17 17:59:05 -0400 |
commit | c67da7ade5e543d8d2665989597543dffb3a7670 (patch) | |
tree | 4d70a732d65d610186db166a6cd0859657e5f67d | |
parent | 204f1ea4992d45c561a888967d791751328cd677 (diff) | |
download | mongo-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.js | 28 |
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?"); })(); |