-
Type: Bug
-
Resolution: Duplicate
-
Priority: Major - P3
-
None
-
Affects Version/s: 2.5.0
-
Component/s: Index Maintenance, Replication
-
None
-
Storage Execution
-
ALL
-
(copied to CRM)
It should not restart user-initiated index builds.
Scenario:
1) User starts building a unique index on {a:1} on the current primary, node A.
2) Node A dies suddenly (kill -9 or power failure, etc) and node B becomes the new primary.
3) Node A restarts and the IndexRebuilder restarts building of the index.
At this point, node A now has an index that does not exist on the primary and never will. This would be less of a problem for a non-unique index, but because this is unique, an insert can now succeed on the primary but fail on node A, breaking replication.
I think the right solution is to only rebuild indexes where we would not call logOp on completion.
- duplicates
-
SERVER-43692 enable two phase index builds by default
- Closed
- is related to
-
SERVER-39086 Move startup recovery index creation logic into IndexBuildsCoordinator
- Closed
-
SERVER-39290 Remove startup index recovery redundancies
- Closed
- related to
-
SERVER-43642 Remove IndexBuilder in favor of IndexBuildsCoordinator
- Closed
-
SERVER-2771 Background index builds on replica set secondaries
- Closed
-
SERVER-8536 reenable IndexRebuilder for background indexing
- Closed