-
Type: Bug
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Index Maintenance, Storage
-
None
-
Minor Change
-
Storage NYC 2018-04-23
-
59
The `IndexBuilder` class is used for secondaries to build indexes. A secondary receiving a message (oplog) to build an index implies the index must exist, thus if the index build has an error, there is logic to crash the node. Notably, the "interrupted" (for shutdown) error code is exempt from crashing.
Errors can come up while an index build is iterating through documents, including being interrupted for shutdown. However, the code indiscriminately turns all errors into a `uassert`.
This uassert is not treated by the former fassert as an interruption error, crashing the server instead of performing a graceful shutdown.
Note: I did confirm that the clean shutdown and the crashing cases both leave the index in an "unready" state and will be rebuilt when the node comes back up.
- related to
-
SERVER-34616 second index build interrupt crashed mongod
- Closed
-
SERVER-37498 remove slowBackgroundIndexBuild failpoint, which skips documents when building index, leading to missing index entries
- Closed