Some uses of the isTimeseries oplog field are not FCV gated and may be set in multiversion scenarios

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: 9.0.0-rc0, 8.3.0
    • Component/s: None
    • None
    • Storage Execution
    • ALL
    • Storage Execution 2026-05-25
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Context: SERVER-106222 added an optional isTimeseries flag to oplog entries that gets set every time a write happens on a collection with timeseries options and a namespace not in the system.buckets format.

       

      In SERVER-109210 we FCV gated most usages of this field. The reasoning is that old binaries (e.g. v8.0) can not parse this field, and even though in those old versions only system.buckets-prefixed collections should have timeseries options, due to inconsistency bugs (e.g. SERVER-109210 or SERVER-59666) this is not fully guaranteed.

       

      Issue: However there remain some usages (e.g. 1, 2) that are still not FCV gated. In the worst case, if:

      (1) we are in a scenario with a new primary (v8.3 or v9.0) and old secondaries (v8.0)

      (2) a user has one of those inconsistencies

      (3) some operation (e.g. insert) happens on those collections

       

      Then the field will be emitted and the v8.0 secondaries will crash.

      The attached repro shows that this actually happens (as long as there is a non-system.buckets collection without timeseries options, which in the repro is artificially forced).

       

      Action: We should re-review all places where we set the isTimeseries oplog field is set and make sure they are gated by the gFeatureFlagMarkTimeseriesEventsInOplog flag.

            Assignee:
            Damian Wasilewicz
            Reporter:
            Joan Bruguera Micó
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: