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

Add feature flag to always create config.transactions index on step up

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Critical - P2 Critical - P2
    • 6.0.0-rc11, 6.1.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • None
    • Fully Compatible
    • ALL
    • v6.0
    • Sharding 2022-06-27
    • 12

      PM-2210 added a partial index to config.transactions to support retryable writes that execute using transactions. Normally the index is created when config.transactions is created on step up to primary or during the setFeatureCompatibilityVersion command. The setFCV logic was added in SERVER-66565 but was not on 6.0 until 6.0.0-rc8 so clusters that upgraded to 6.0 and set FCV to 6.0 before then skipped creating the index. As of SERVER-66565, when a retryable write or transaction is first seen by a mongod, it runs a query with a hint for that index that will fail if the index does not exist. Thus clusters that upgraded in that window will not be able to run retryable writes or transactions if the internal transactions feature flag (featureFlagInternalTransactions) is enabled, which it is by default in 6.0. The feature flag can be disabled to avoid this.

      To simplify creating the collection on affected clusters, we should add logic so on step up the partial index will always be created even if the collection is not empty, and we'll add this behind a feature flag so it can be enabled only when necessary.

            Assignee:
            jack.mulrow@mongodb.com Jack Mulrow
            Reporter:
            jack.mulrow@mongodb.com Jack Mulrow
            Votes:
            0 Vote for this issue
            Watchers:
            9 Start watching this issue

              Created:
              Updated:
              Resolved: