Details
Description
The collection metadata in CollectionImpl tracks both the uncommitted changes in memory and the persisted state in DurableCatalog. The IndexCatalogEntry updates the collection metadata for multikey by calling CollectionImpl::setIndexIsMultikey(). All updates on the collection metadata has to be done in a storage transaction (WriteUnitOfWork) with cleanup handlers to clear the uncommitted state if the transaction is aborted. If a WriteConflictException is thrown from DurableCatalog::putMetaData() before the rollback handler to remove the uncommitted multikey state is installed, we may end up with a collection metadata state where subsequent writers may observe uncommitted multikey information that should have been discarded.
Attachments
Issue Links
- is related to
-
SERVER-56002 listIndexes can read partial state from renameCollection
-
- Closed
-
-
SERVER-56023 listCollections can return empty metadata for a collection which has been concurrently dropped
-
- Closed
-
-
SERVER-56877 insert operations may fail to set index to multikey after aborted multikey catalog update
-
- Closed
-
-
SERVER-57127 Refactor multikey and other state out of IndexCatalogEntry
-
- Closed
-
- related to
-
SERVER-57786 include collection UUID and redacted documents in validation report
-
- Closed
-