[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: SERVER-61646 Must ensure backup cursor is really killed before moving on
Branch: master
https://github.com/10gen/mongo-enterprise-modules/commit/bfc111d6a1a77ab8fad826045eca613b27ef7c5a

Generated at Thu Feb 08 05:52:58 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.