mirror of https://github.com/mongodb/mongo
45 lines
1.5 KiB
JavaScript
45 lines
1.5 KiB
JavaScript
/**
|
|
* Tests that capped collections get the correct fastcounts after rollback.
|
|
*/
|
|
import {RollbackTest} from "jstests/replsets/libs/rollback_test.js";
|
|
|
|
const testName = "rollback_capped_deletions";
|
|
const dbName = testName;
|
|
const collName = "cappedCollName";
|
|
|
|
const rollbackTest = new RollbackTest(testName);
|
|
const primary = rollbackTest.getPrimary();
|
|
const testDb = primary.getDB(dbName);
|
|
|
|
assert.commandWorked(
|
|
testDb.runCommand({
|
|
"create": collName,
|
|
"capped": true,
|
|
"size": 40,
|
|
}),
|
|
);
|
|
const coll = testDb.getCollection(collName);
|
|
assert.commandWorked(coll.insert({a: 1}));
|
|
|
|
rollbackTest.awaitLastOpCommitted();
|
|
assert.commandWorked(primary.adminCommand({configureFailPoint: "disableSnapshotting", mode: "alwaysOn"}));
|
|
|
|
assert.commandWorked(coll.insert({bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb: 1}));
|
|
assert.commandWorked(coll.insert({cccccccccccccccccccccccccccccccccccccccccccc: 1}));
|
|
assert.commandWorked(coll.insert({dddddddddddddddddddddddddddddddddddddddddddd: 1}));
|
|
assert.commandWorked(coll.insert({eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee: 1}));
|
|
|
|
rollbackTest.transitionToRollbackOperations();
|
|
|
|
assert.commandWorked(coll.insert({ffffffffffffffffffffffffffffffffffffffffffff: 1}));
|
|
|
|
rollbackTest.transitionToSyncSourceOperationsBeforeRollback();
|
|
rollbackTest.transitionToSyncSourceOperationsDuringRollback();
|
|
try {
|
|
rollbackTest.transitionToSteadyStateOperations();
|
|
} finally {
|
|
assert.commandWorked(primary.adminCommand({configureFailPoint: "disableSnapshotting", mode: "off"}));
|
|
}
|
|
|
|
rollbackTest.stop();
|