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