|
When oplogApplicationEnforcesSteadyStateConstraints is set to false, if there is an index build conflict after a node steps down and the existing index build fails, the index build is not retried resulting in an index build missing on a secondary.
This is the order events that can cause this:
- Node 1 starts index build A as a primary and the index build is scheduled (making it past this check)
- Node 1 steps down
- Node 2 steps up as primary and starts index build B with the same name as index build A
- Node 1 tries to replicate index build B but runs into an index build conflict with index build A but continues with this error
- Index build A on node 1 fails
- Index build B now missing on node 1 and is not retried
In production, this could only be detected by running dbcheck when the db hashes for Node 1 and Node 2 mismatch.
|