Remove expireAfterSeconds type-mismatch workaround in CMC once 9.0 becomes last LTS

XMLWordPrintableJSON

    • 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.

            Assignee:
            Unassigned
            Reporter:
            Daniele Alessandrelli
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: