summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorA. Jesse Jiryu Davis <jesse@mongodb.com>2019-11-22 20:13:20 +0000
committerevergreen <evergreen@mongodb.com>2019-11-22 20:13:20 +0000
commit204ab367a130a4fd2db1c54b02cd6a86e4e07f56 (patch)
treec35b28fccb649d8d542b4394189c42bf6c0543df
parent7a3bdd35b859ac8462e756b909c0a4773195b99a (diff)
downloadmongo-r3.6.16.tar.gz
SERVER-44675 Handle race in repl metrics testr3.6.16-rc0r3.6.16
-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 59054f2172a..935b454d92a 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, offset) {
+function _testSecondaryMetricsHelper(secondary, opCount, offset) {
var ss = secondary.getDB("test").serverStatus();
printjson(ss.metrics);
@@ -31,6 +31,19 @@ function testSecondaryMetrics(secondary, opCount, offset) {
assert.eq(ss.metrics.repl.apply.ops, opCount + offset, "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();