[SERVER-43688] Race in range deleter can trigger invariant if epoch changes Created: 27/Sep/19 Updated: 06/Dec/22 Resolved: 15/Jan/20 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Sharding |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Matthew Saltz (Inactive) | Assignee: | [DO NOT USE] Backlog - Sharding Team |
| Resolution: | Won't Fix | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Assigned Teams: |
Sharding
|
||||||||
| Operating System: | ALL | ||||||||
| Participants: | |||||||||
| Linked BF Score: | 12 | ||||||||
| Description |
|
setFilteringMetadata in the metadata manager, when a collection's epoch has changed, triggers clearing the range deleter's queue. If this happens when the range deleter is executing a task for that collection in between these lines, where the range deleter is not holding the metadata manager's mutex, then the invariant here will be triggered. We should either make this not an invariant or fix the concurrency control between the range deleter and the metadata manager (though the former seems more tractable). |
| Comments |
| Comment by Matthew Saltz (Inactive) [ 15/Jan/20 ] |
|
Refactoring the range deleter made this a non-issue (see |
| Comment by Matthew Saltz (Inactive) [ 09/Dec/19 ] |
|
This will go away once the CollectionRangeDeleter is refactored |