Files
mongo/jstests/replsets/rollback_index_build_start.js
2023-08-04 16:39:04 +00:00

26 lines
986 B
JavaScript

/**
* Test that an index build aborted due to rollback restarts correctly, even if the none of the
* associated oplog entries are rolled-back.
*/
import {RollbackIndexBuildsTest} from "jstests/replsets/libs/rollback_index_builds_test.js";
const rollbackIndexTest = new RollbackIndexBuildsTest([ErrorCodes.InterruptedDueToReplStateChange]);
const schedule = [
// Start an index build.
"start",
// Hold the stable timestamp, if applicable. This will prevent the startIndexBuild oplog entry
// from being rolled-back.
"holdStableTimestamp",
// This aborts the active index build.
"transitionToRollback",
// Allow the new primary to take over, and let the rolled-back primary restart its index build.
"transitionToSteadyState",
// If failover is supported, the new index build will already commit on the new primary. Allow
// the old primary to finish.
"commit",
];
rollbackIndexTest.runSchedules([schedule]);
rollbackIndexTest.stop();