// This tests that we can successfully profile queries on secondaries. (function() { 'use strict'; var rst = new ReplSetTest({nodes: 2}); rst.startSet(); rst.initiate(); rst.awaitReplication(); var secondaryDB = rst.getSecondary().getDB('test'); jsTestLog('Enable profiling on the secondary'); assert.commandWorked(secondaryDB.runCommand({profile: 2})); jsTestLog('Perform a query that returns no results, but will get profiled.'); secondaryDB.doesntexist.find({}).itcount(); let numProfileEntries = (coll) => coll.getDB() .system.profile.find({op: 'query', ns: coll.getFullName(), nreturned: 0}) .itcount(); jsTestLog('Check the query is in the profile and turn profiling off.'); assert.eq(numProfileEntries(secondaryDB.doesntexist), 1, 'expected a single profile entry'); assert.commandWorked(secondaryDB.runCommand({profile: 0})); rst.stopSet(); })();