diff options
author | Hana Pearlman <hana.pearlman@mongodb.com> | 2021-10-19 19:42:12 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-10-19 20:39:57 +0000 |
commit | dd04992030d53e2b52fc83261f51e119a134de58 (patch) | |
tree | 2d676cf0c81538b3620564422f408333bc7360be /jstests | |
parent | 9a40fb0483a81cc7cff32919f58667d336fc73dd (diff) | |
download | mongo-dd04992030d53e2b52fc83261f51e119a134de58.tar.gz |
SERVER-60771: Suppress heartbeat log messages in $lookup execution tests
Diffstat (limited to 'jstests')
-rw-r--r-- | jstests/sharding/query/lookup_unionWith_subpipeline_local_read.js | 46 | ||||
-rw-r--r-- | jstests/sharding/query/sharded_lookup_execution.js | 12 |
2 files changed, 48 insertions, 10 deletions
diff --git a/jstests/sharding/query/lookup_unionWith_subpipeline_local_read.js b/jstests/sharding/query/lookup_unionWith_subpipeline_local_read.js index dfdf31f128a..119e6c028f8 100644 --- a/jstests/sharding/query/lookup_unionWith_subpipeline_local_read.js +++ b/jstests/sharding/query/lookup_unionWith_subpipeline_local_read.js @@ -20,6 +20,7 @@ const st = new ShardingTest({name: jsTestName(), mongos: 1, shards: 2, rs: {node const dbName = jsTestName() + '_db'; st.s0.setCausalConsistency(true); const mongosDB = st.s0.getDB(dbName); +const replSets = [st.rs0, st.rs1]; const local = mongosDB.local; const foreign = mongosDB.foreign; @@ -28,18 +29,49 @@ assert.commandWorked(mongosDB.adminCommand({enableSharding: mongosDB.getName()}) st.ensurePrimaryShard(mongosDB.getName(), st.shard0.shardName); // Turn on the profiler and increase the query log level for both shards. -for (let rs of [st.rs0, st.rs1]) { +for (let rs of replSets) { const primary = rs.getPrimary(); const secondary = rs.getSecondary(); assert.commandWorked(primary.getDB(dbName).setProfilingLevel(2, -1)); - assert.commandWorked( - primary.adminCommand({setParameter: 1, logComponentVerbosity: {query: {verbosity: 3}}})); + assert.commandWorked(primary.adminCommand({ + setParameter: 1, + logComponentVerbosity: {query: {verbosity: 3}, replication: {heartbeats: 0}} + })); assert.commandWorked(secondary.getDB(dbName).setProfilingLevel(2, -1)); - assert.commandWorked( - secondary.adminCommand({setParameter: 1, logComponentVerbosity: {query: {verbosity: 3}}})); + assert.commandWorked(secondary.adminCommand({ + setParameter: 1, + logComponentVerbosity: {query: {verbosity: 3}, replication: {heartbeats: 0}} + })); +} + +// Clear the logs on the primary nodes before starting a test to isolate relevant log lines. +function clearLogs() { + for (let i = 0; i < replSets.length; i++) { + for (let node of [replSets[i].getPrimary(), replSets[i].getSecondary()]) { + assert.commandWorked(node.adminCommand({clearLog: "global"})); + } + } +} + +// Returns true if the number of log lines on any primary exceeded the internal log buffer size. +function logLinesExceededBufferSize() { + for (let i = 0; i < replSets.length; i++) { + for (let node of [replSets[i].getPrimary(), replSets[i].getSecondary()]) { + const log = assert.commandWorked(node.adminCommand({getLog: "global"})); + if (log.totalLinesWritten > 1024) { + return true; + } + } + } + return false; } function getLocalReadCount(node, foreignNs, comment) { + if (logLinesExceededBufferSize()) { + jsTestLog('Warning: total log lines written since start of test is more than internal ' + + 'buffer size. Some local read log lines may be missing!'); + } + const log = assert.commandWorked(node.adminCommand({getLog: "global"})).log; const countMatchingLogs = @@ -59,7 +91,6 @@ function assertProfilerEntriesMatch(expected, comment, pipeline) { const stage = Object.keys(pipeline[0])[0]; const foreignNs = pipeline[0][stage].from ? pipeline[0][stage].from : pipeline[0][stage].coll; - const replSets = [st.rs0, st.rs1]; for (let i = 0; i < replSets.length; i++) { const node = expected.executeOnSecondaries ? replSets[i].getSecondary() : replSets[i].getPrimary(); @@ -119,6 +150,7 @@ function assertAggResultAndRouting(pipeline, expectedResults, opts, expected) { assert.commandWorked( foreign.insert([{_id: -1, b: 2}, {_id: 1, b: 1}], {writeConcern: {w: 'majority'}})); + clearLogs(); const res = local.aggregate(pipeline, opts).toArray(); assert(arrayEq(expectedResults, res), tojson(res)); @@ -530,6 +562,7 @@ const parallelScript = (pipeline, expectedRes, comment) => }`; // Start a parallel shell to run the nested $lookup. +clearLogs(); let awaitShell = startParallelShell( parallelScript(pipeline, expectedRes, "lookup_foreign_becomes_sharded"), st.s.port); @@ -564,6 +597,7 @@ assert.commandWorked(foreign.insert([{_id: -1, b: 2}, {_id: 1, b: 1}, {_id: 2, b failPoint = configureFailPoint(st.shard0, "waitAfterCommandFinishesExecution", data); // Start a parallel shell to run the nested $lookup. +clearLogs(); awaitShell = startParallelShell(parallelScript(pipeline, expectedRes, "lookup_primary_is_moved"), st.s.port); diff --git a/jstests/sharding/query/sharded_lookup_execution.js b/jstests/sharding/query/sharded_lookup_execution.js index 9c332539455..3bef0c45556 100644 --- a/jstests/sharding/query/sharded_lookup_execution.js +++ b/jstests/sharding/query/sharded_lookup_execution.js @@ -27,10 +27,14 @@ st.ensurePrimaryShard(mongosDB.getName(), st.shard0.shardName); // Turn on the profiler and increase the query log level for both shards. assert.commandWorked(st.shard0.getDB(testName).setProfilingLevel(2)); assert.commandWorked(st.shard1.getDB(testName).setProfilingLevel(2)); -assert.commandWorked( - st.shard0.adminCommand({setParameter: 1, logComponentVerbosity: {query: {verbosity: 3}}})); -assert.commandWorked( - st.shard1.adminCommand({setParameter: 1, logComponentVerbosity: {query: {verbosity: 3}}})); +assert.commandWorked(st.shard0.adminCommand({ + setParameter: 1, + logComponentVerbosity: {query: {verbosity: 3}, replication: {heartbeats: 0}} +})); +assert.commandWorked(st.shard1.adminCommand({ + setParameter: 1, + logComponentVerbosity: {query: {verbosity: 3}, replication: {heartbeats: 0}} +})); const ordersColl = mongosDB.orders; const reviewsColl = mongosDB.reviews; |