[SERVER-33322] reconcileCatalogAndIdents() should also include unready indexes in set of indexes to rebuild Created: 14/Feb/18 Updated: 16/Feb/18 Resolved: 16/Feb/18 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Index Maintenance, Storage |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Kyle Suarez | Assignee: | Kyle Suarez |
| Resolution: | Duplicate | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||
| Sprint: | Repl 2018-02-26 | ||||||||||||||||
| Participants: | |||||||||||||||||
| Description |
|
KVStorageEngine::reconcileCatalogAndIdents() needs to include unready (that is, unfinished) indexes in its return set, so that the recovery process will rebuild them when in ROLLBACK. Otherwise, applying an operation that affects that index will cause us to crash because we don't have a proper WiredTiger table corresponding to it. We will have to preserve the behavior of the --noIndexBuildRetry flag, which skips rebuilding unfinished indexes at start-up. One idea is to forbid specifying both --replset and --noIndexBuildRetry at the same time. |