[SERVER-46876] During the eviction pressure, we should quit the compact operation instead of crashing the process Created: 15/Mar/20 Updated: 29/Oct/23 Resolved: 11/Jan/21 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Storage |
| Affects Version/s: | 3.6.17, 4.0.16 |
| Fix Version/s: | 4.9.0, 4.0.23, 4.4.4, 4.2.13 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Dmitry Agranat | Assignee: | Gregory Wlodarek |
| Resolution: | Fixed | Votes: | 1 |
| Labels: | neweng | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Attachments: |
|
||||||||||||
| Issue Links: |
|
||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||
| Operating System: | ALL | ||||||||||||
| Backport Requested: |
v4.4, v4.2, v4.0
|
||||||||||||
| Sprint: | Execution Team 2021-01-25 | ||||||||||||
| Participants: | |||||||||||||
| Case: | (copied to CRM) | ||||||||||||
| Description |
|
Currently, we fail with this invariant if an eviction pressure is detected:
However, based on session_compact.c around line 270, we should just quit if eviction is a problem:
|
| Comments |
| Comment by Githook User [ 14/Jan/21 ] |
|
Author: {'name': 'Gregory Wlodarek', 'email': 'gregory.wlodarek@mongodb.com', 'username': 'GWlodarek'}Message: (cherry picked from commit 0ce2fa7273aa7f4c7170c1bba3944efe46b4f043) |
| Comment by Githook User [ 14/Jan/21 ] |
|
Author: {'name': 'Gregory Wlodarek', 'email': 'gregory.wlodarek@mongodb.com', 'username': 'GWlodarek'}Message: (cherry picked from commit 0ce2fa7273aa7f4c7170c1bba3944efe46b4f043) |
| Comment by Githook User [ 14/Jan/21 ] |
|
Author: {'name': 'Gregory Wlodarek', 'email': 'gregory.wlodarek@mongodb.com', 'username': 'GWlodarek'}Message: (cherry picked from commit 0ce2fa7273aa7f4c7170c1bba3944efe46b4f043) |
| Comment by Githook User [ 11/Jan/21 ] |
|
Author: {'name': 'Gregory Wlodarek', 'email': 'gregory.wlodarek@mongodb.com', 'username': 'GWlodarek'}Message: |
| Comment by Eric Milkie [ 23/Oct/20 ] |
|
The work for this will be to explicitly handle the case where the call to compact returns EBUSY. Instead of crashing with an invariant failure, the code logic should return an error status back to the client for this command. |