[SERVER-61646] Must ensure backup cursor is really killed before moving on Created: 19/Nov/21 Updated: 29/Oct/23 Resolved: 20/Nov/21 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 5.2.0 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Matthew Russotto | Assignee: | Matthew Russotto |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Backwards Compatibility: | Fully Compatible |
| Operating System: | ALL |
| Sprint: | Replication 2021-11-29 |
| Participants: |
| Description |
|
A very old quirk of DBClientCursor is it will not actually kill a cursor on kill() or on destruction if the global shutdown flag is set. Before closing down WiredTiger for storage change it is necessary that FCBIS ensures the cursor is actually dead. The global shutdown flag is racy, so storage change may run after it is set. Solution here is to add a scope guard which will positively kill the cursor using DBClientConnection itself, if the global shutdown flag is set (it can't be unset, so if we missed the close, it will always be set) |
| Comments |
| Comment by Githook User [ 19/Nov/21 ] |
|
Author: {'name': 'Matthew Russotto', 'email': 'matthew.russotto@mongodb.com', 'username': 'mtrussotto'}Message: |