-
Type: Bug
-
Resolution: Duplicate
-
Priority: Major - P3
-
None
-
Affects Version/s: 4.3.2
-
Component/s: None
-
None
-
ALL
-
-
Execution Team 2020-01-13, Execution Team 2020-01-27, Execution Team 2020-02-10, Execution Team 2020-02-24, Execution Team 2020-03-09
-
20
After SERVER-43859, collection creation only takes a MODE_IX lock. The registration of the Collection object in the CollectionCatalog is no longer atomic with the commit of the storage transaction, which was previously protected by a MODE_X lock.
We use a pre-commit hook to register collections in the CollectionCatalog before committing the WriteUnitOfWork. The collection only becomes visible in the durable catalog once the WUOW commits.
There is now a window of time where the collection can be registered in the CollectionCatalog, but not visible to any storage snapshots, even those reading without a timestamp (so minVisibleSnapshot does not help). This causes certain debug invariants to fail when confirming that the in-memory IndexCatalog is consistent with the DurableCatalog. See here for example.
- depends on
-
SERVER-46285 Collections should not be visible in CollectionCatalog lookups until storage transaction commit
- Closed
- related to
-
SERVER-46285 Collections should not be visible in CollectionCatalog lookups until storage transaction commit
- Closed