[SERVER-81241] Range deleter processor must not try reschedule task during service shutdown Created: 20/Sep/23 Updated: 31/Oct/23 Resolved: 20/Sep/23 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Sharding |
| Affects Version/s: | None |
| Fix Version/s: | 7.1.1, 7.2.0-rc0, 7.0.3 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Pierlauro Sciarelli | Assignee: | Pierlauro Sciarelli |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||
| Operating System: | ALL | ||||||||
| Backport Requested: |
v7.1, v7.0
|
||||||||
| Sprint: | Sharding EMEA 2023-10-02 | ||||||||
| Participants: | |||||||||
| Linked BF Score: | 152 | ||||||||
| Description |
|
The range deleter service service shutdown procedure is:
Hence when a range deletion throws IndexNotFound right while the service is stopping (between 1 and 3), it can happen that the processor tries to reschedule the task while the state is changing triggering this invariant. The solution is to hold the proper locks when emplacing the range deletion as it happens here or to simply change emplaceRangeDeletions to result in a no-op when called while the service is not up. |
| Comments |
| Comment by Githook User [ 31/Oct/23 ] |
|
Author: {'name': 'Pierlauro Sciarelli', 'email': 'pierlauro.sciarelli@mongodb.com', 'username': 'pierlauro'}Message: |
| Comment by Githook User [ 21/Sep/23 ] |
|
Author: {'name': 'Pierlauro Sciarelli', 'email': 'pierlauro.sciarelli@mongodb.com', 'username': 'pierlauro'}Message: |
| Comment by Githook User [ 20/Sep/23 ] |
|
Author: {'name': 'Pierlauro Sciarelli', 'email': 'pierlauro.sciarelli@mongodb.com', 'username': 'pierlauro'}Message: |