-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Catalog and Routing
-
ALL
-
CAR Team 2026-03-16, CAR Team 2026-03-30, CAR Team 2026-04-13
-
None
-
None
-
None
-
None
-
None
-
None
-
None
The TTL monitor's _doTTLIndexDelete uses Grid::isInitialized() as a guard to access the CatalogCache and fetch CollectionRoutingInfo.
This access exists solely to retrieve shard collection metadata for Global Indexes, which is dead code in 8.0. The check also uses the wrong predicate (isInitialized() instead of isShardingInitialized()), creating a window during sharding initialization on secondaries where Grid is initialized but ShardingState is not yet enabled, leading to an invariant failure crash via getSelfShardId().
The fix is to remove the CatalogCache access entirely, defaulting sii to boost::none.