Secondaries should call into lower level create collection API during oplog application

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Storage Execution
    • ALL
    • 200
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None

      Currently, secondaries call a high level create collection API - create_collection.h's createCollection - which performs FCV / feature flag checks.

      Due to how FCV transitions can interleave with creating oplog entries, this means that a scenario is possible where the primary creates oplog entries like:

      [
          {setFCV: "transitioning to 8.0"},
          {create: 'test.mycoll', useFeatureOn8_1: true}
      ]
      

      However when the secondary applies these oplog entries, it will end up crashing because after it has entered the downgrading ("transitioning to 8.0") state, it tries to create a collection with the 8.1 feature and the feature flag check fires due to the secondary calling the higher level API.

      This is a particular instance of SERVER-79269.

            Assignee:
            Unassigned
            Reporter:
            Vishnu Kaushik
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated: