summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorA. Jesse Jiryu Davis <jesse@mongodb.com>2019-11-22 20:15:48 +0000
committerevergreen <evergreen@mongodb.com>2019-11-22 20:15:48 +0000
commit257f01131fd83915c7ac6c5964075ce7a805569c (patch)
treedba1c8552bde13c847572ed46cc4e4132095eadf
parent8ff79f256f1e57b32edccae37dc260b342323d26 (diff)
downloadmongo-257f01131fd83915c7ac6c5964075ce7a805569c.tar.gz
SERVER-44675 Handle race in repl metrics test
-rw-r--r--jstests/replsets/server_status_metrics.js15
1 files changed, 14 insertions, 1 deletions
diff --git a/jstests/replsets/server_status_metrics.js b/jstests/replsets/server_status_metrics.js
index 7b271d197f4..d33f61347bc 100644
--- a/jstests/replsets/server_status_metrics.js
+++ b/jstests/replsets/server_status_metrics.js
@@ -1,7 +1,7 @@
/**
* Test replication metrics
*/
-function testSecondaryMetrics(secondary, opCount, baseOpsApplied, baseOpsReceived) {
+function _testSecondaryMetricsHelper(secondary, opCount, baseOpsApplied, baseOpsReceived) {
var ss = secondary.getDB("test").serverStatus();
printjson(ss.metrics);
@@ -30,6 +30,19 @@ function testSecondaryMetrics(secondary, opCount, baseOpsApplied, baseOpsReceive
assert.eq(ss.metrics.repl.apply.ops, opCount + baseOpsApplied, "wrong number of applied ops");
}
+// Metrics are racy, e.g. repl.buffer.count could over- or under-reported briefly. Retry on error.
+function testSecondaryMetrics(secondary, opCount, baseOpsApplied, baseOpsReceived) {
+ assert.soon(() => {
+ try {
+ _testSecondaryMetricsHelper(secondary, opCount, baseOpsApplied, baseOpsReceived);
+ return true;
+ } catch (exc) {
+ jsTestLog(`Caught ${exc}, retrying`);
+ return false;
+ }
+ });
+}
+
var rt = new ReplSetTest({name: "server_status_metrics", nodes: 2, oplogSize: 100});
rt.startSet();
rt.initiate();