-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Minor - P4
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Catalog and Routing
-
🟥 DDL
-
None
-
None
-
None
-
None
-
None
-
None
SERVER-92364 added a temporary workaround in checkMetadataConsistency's cross-shard index consistency pipeline (checkIndexesConsistencyAcrossShards in metadata_consistency_util.cpp) to tolerate expireAfterSeconds being stored as different numeric BSON types across shards in mixed-version clusters.
The workaround casts all numeric expireAfterSeconds values to long before comparison when FCV < 9.0. Once FCV reaches 9.0, SERVER-120253 ensures all on-disk values are normalized to integer, so any remaining type mismatch is a genuine inconsistency.
When 9.0 becomes last LTS, this workaround is no longer needed and should be removed:
- In metadata_consistency_util.cpp: remove the $map/$cond/$toLong transformation in the $group stage of the pipeline, reverting specs back to $push: {$objectToArray: {$ifNull: ['\$indexDoc.spec', {}]}}.
- Remove the fcvSnapshot / tolerateExpireAfterSecondsTypeMismatch variable and the aggRequest.setLet(...) call.
- Remove the TODO comments referencing this ticket.
- related to
-
SERVER-92364 checkMetadataConsistency() fails on mixed version shards with 'expireAfterSeconds' as double
-
- Investigating
-