Essentially, the issue appears to be that listIndexes can read from the DurableCatalog in the middle of a concurrent collection rename (after the original target was dropped, but before the source collection is renamed). This looks to be possible because the listIndexes can read from the DurableCatalog using the same catalogId that the collection rename removes from the DurableCatalog.
Some ideas for how to fix this include making listIndexes no longer lock free as well as reimplementing listIndexes to use the IndexCatalog instead of the DurableCatalog.
- is depended on by
-
SERVER-52713 [testing] Add stepdown/kill/terminate to tenant_migration_jscore_passthrough
- Closed
- is duplicated by
-
SERVER-55519 Investigate missing _id index during collection cloning in tenant migration
- Closed
- is related to
-
SERVER-55519 Investigate missing _id index during collection cloning in tenant migration
- Closed
-
SERVER-56023 listCollections can return empty metadata for a collection which has been concurrently dropped
- Closed
- related to
-
SERVER-56877 insert operations may fail to set index to multikey after aborted multikey catalog update
- Closed
-
SERVER-57083 Coverity analysis defect 120111: Parse warning
- Closed
-
SERVER-57324 dropDatabase should not modify CollectionCatalog inplace
- Closed
-
SERVER-57775 collection metadata for multikey not removed after WriteConflictException from durable catalog update
- Closed
-
SERVER-57127 Refactor multikey and other state out of IndexCatalogEntry
- Closed