The contract for aborting an index build is that once the aborting thread acquires the RSTL, the collection X lock, and kills the builder thread, it must follow-through with the abort by writing an "abortIndexBuild" oplog entry. Otherwise, the index build is left unfinished on disk with no means of making progress.
In a special race, a step-down can interrupt the final write, after the RSTL has been acquired, causing the server to crash.
We should consider making this critical section resilient to being interrupted.
- related to
-
SERVER-79176 Index build _completeExternalAbort should be resilient to interrupts
- Closed
-
SERVER-48524 Acquire config.system.indexBuilds lock earlier and with collection lock
- Closed