-
Type: Bug
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Catalog and Routing
-
ALL
-
CAR Team 2024-08-05, CAR Team 2024-08-19, CAR Team 2024-09-02, CAR Team 2024-09-16, CAR Team 2024-09-30, CAR Team 2024-10-14, CAR Team 2024-10-28, CAR Team 2024-11-11, CAR Team 2024-11-25
Closing a storage engine snapshot via abandonSnapshot() and WriteUnitOfWork::commit() invalidates the CollectionCatalog snapshot held by callers. There are no preventative measures to ensure that callers do not continue using a potentially invalid catalog snapshot, and this is dangerous.
This causes memory errors and segfaults like this one: SERVER-81331.
This is also likely a problem just for Lock-free-reads operations
- is depended on by
-
SERVER-95260 Investigate generational lock information
- Blocked
- related to
-
SERVER-93509 GlobalLock can potentially release the snapshot involuntarily
- Closed
-
SERVER-95197 Investigate if it's possible to use consistent collections during compact
- Backlog
-
SERVER-95195 Avoid instantiating CollectionPtr using unsafe constructor in index builds coordinator
- Backlog
-
SERVER-95196 Avoid instantiating CollectionPtr using unsafe constructor in MultiIndexBlock
- Backlog
-
SERVER-95260 Investigate generational lock information
- Blocked
-
SERVER-95194 Change checkAndHashCollection function to not use the unsafe CollectionPtr constructor
- Closed
-
SERVER-95308 Investigate if it's worth having a debug only primitive for reference counted pointers
- Closed
-
SERVER-94787 Avoid abandoning the snapshot explicitly in CollectionScan
- Needs Scheduling
- split to
-
SERVER-94616 Add Absl::InlinedVector GDB pretty printer
- Open