Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-90971

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

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

      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 Unassigned
            Reporter:
            vishnu.kaushik@mongodb.com Vishnu Kaushik
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated: