[SERVER-69589] Two-phase index builds can leave leftover entries in 'config.system.indexBuilds' Created: 12/Sep/22  Updated: 30/Jan/23

Status: Blocked
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Major - P3
Reporter: Gregory Wlodarek Assignee: Backlog - Storage Execution Team
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on SERVER-64566 Enable Feature flag for PM-2780 Open
Related
related to SERVER-60753 Removing index build entries from 'co... Closed
Assigned Teams:
Storage Execution
Operating System: ALL
Participants:

 Description   

The 'config.system.indexBuilds' collection is replicated and the index build entries will be removed from it after the commitIndexBuild/abortIndexBuild oplog entry. However, this opens the possibility for these index build entries to be left behind in the collection. Consider the following sequence:

- Checkpoint @ 5.
- startIndexBuild @ 6.
- commitIndexBuild/abortIndexBuild @ 7.
- Remove config.system.indexBuilds entry @ 8.
- Take a backup. We will restore @ 5.
- Start a standalone on the backed-up files, set the oplogTruncateAfterPoint to 7.
- Restart with --recoverFromOplogAsStandalone.
- We replay the oplog entries at 6 and 7, but never 8.

This is already the case since v4.4 when aborting index builds and since SERVER-60753 when committing index builds. This doesn't have any bad consequences.


Generated at Thu Feb 08 06:13:51 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.