Standalone nodes will ignore in-progress index builds so as not to deviate from their original replica sets. On rejoining the replica set, in replset mode, the in-progress index builds will be recovered and finished according to whether the replica set committed or aborted the index builds.
This will also require correct handling of neglected index catalog entries if the createIndexes command is called while in standalone mode.
The behavior is as follows:
- createIndex will fail with a CannotBuildIndex error, explaining that the index must be dropped first.
- dropIndex should succeed
- depends on
-
SERVER-37726 Make dropIndexes abort in-progress index builds
- Closed
-
SERVER-38350 Register index builds recovered in standalone mode on restart in the IndexBuildsCoordinator interface without restarting the builds
- Closed
-
SERVER-38910 Remove redundant rollback handling on index drops
- Closed
- is duplicated by
-
SERVER-38351 Clear _unfinishedIndexes from IndexCatalog when restarting replica set member in standalone mode, without clearing persisted data
- Closed
- is related to
-
SERVER-38118 Write characterization tests for restarted nodes in standalone with unfinished indexes
- Closed
-
SERVER-38797 Add unit tests for the IndexCatalog
- Closed
- related to
-
SERVER-57795 index_build_restart_standalone.js should ensure that checkpoints include start of index builds
- Closed
-
SERVER-44468 Enable characterize_index_builds_on_restart.js for two-phase index builds
- Closed