-
Type: Bug
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: 7.0.0, 7.1.0, 7.3.0-rc0, 7.2.0
-
Component/s: None
-
None
-
Catalog and Routing
-
ALL
-
144
-
2
Today, the catalog::forEachCollectionFromDb() iterates through the database collections using the lookupNSSByUUID() primitive, which does not guarantee alignment between the in-memory catalog cache and the metadata persisted in WiredTiger if ReadConcernArgs is set on the opCtx. This would cause the following scenario to occur:
- We abandon the snapshot.
- We lock the collection based on the latest CollectionCatalog information.
- We execute the function with a collection that may not exist at the given read concern timestamp but exists at the latest timestamp.
The usage of establishConsistentCollection/s() methods would on the other hand guarantee a more robust behaviour against concurrent creation of new database collections.