mirror of https://github.com/mongodb/mongo
46 lines
1.6 KiB
JavaScript
46 lines
1.6 KiB
JavaScript
// Confirm that implicitly created profile collections are successful and do not trigger assertions.
|
|
// In order to implicitly create a profile collection with a read, we must set up the server with
|
|
// some data to read without the profiler being active.
|
|
// @tags: [
|
|
// # 'assert' log component is not available in 5.0.
|
|
// requires_fcv_60,
|
|
// requires_persistence,
|
|
// ]
|
|
(function() {
|
|
"use strict";
|
|
let rst = new ReplSetTest({nodes: {n0: {profile: "0"}}});
|
|
rst.startSet();
|
|
rst.initiate();
|
|
let primary = rst.getPrimary();
|
|
let primaryDB = primary.getDB('test');
|
|
|
|
assert.commandWorked(primaryDB.foo.insert({_id: 1}));
|
|
|
|
const nodeId = rst.getNodeId(primary);
|
|
rst.stop(nodeId);
|
|
rst.start(nodeId, {profile: "2"}, true /* preserves data directory */);
|
|
rst.awaitReplication();
|
|
primary = rst.getPrimary();
|
|
primaryDB = primary.getDB('test');
|
|
|
|
let oldAssertCounts = primaryDB.serverStatus().asserts;
|
|
jsTestLog('Before running aggregation: Assert counts reported by db.serverStatus(): ' +
|
|
tojson(oldAssertCounts));
|
|
primaryDB.setLogLevel(1, 'assert');
|
|
try {
|
|
assert.eq(0, primaryDB.system.profile.count());
|
|
assert.eq([{_id: 1}], primaryDB.foo.aggregate([]).toArray());
|
|
|
|
let newAssertCounts = primaryDB.serverStatus().asserts;
|
|
jsTestLog('After running aggregation: Assert counts reported by db.serverStatus(): ' +
|
|
tojson(newAssertCounts));
|
|
assert.eq(oldAssertCounts, newAssertCounts);
|
|
// Should have 2 entries, one for the count command and one for the aggregate command.
|
|
assert.eq(2, primaryDB.system.profile.count());
|
|
} finally {
|
|
primaryDB.setLogLevel(0, 'assert');
|
|
}
|
|
|
|
rst.stopSet();
|
|
})();
|