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

downgrade_replset.js and minor_version_downgrade_replset.js can fail due to v:2 index

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • 3.3.15
    • Affects Version/s: None
    • Component/s: Internal Code
    • None
    • Fully Compatible
    • ALL
    • Query 2016-10-10
    • 0

      These tests downgrade a replica set after running setFeatureCompatibiliityVersion:"3.2". The sFCV command returns "ok" after dropping a v:2 index on admin.system.version with "majority" writeConcern. This means that after receiving "ok", the index drop will not roll back, and all nodes will eventually become downgrade-able (since a node can only be downgraded until after the v:2 index is dropped). However, not all nodes are immediately downgrade-able. The test can attempt to downgrade a secondary that has not yet applied the dropIndex command. The node fails to start up with an error such as the following:

      [js_test:minor_version_downgrade_replset] 2016-09-22T04:55:49.573+0000 d20011| 2016-09-22T04:55:49.572+0000 F INDEX    [initandlisten] Found an invalid index { v: 2, key: { version: 1 }, name: "incompatible_with_version_32", ns: "admin.system.version" } on the admin.system.version collection: this version of mongod cannot build new indexes of version number 2
      

      In order to fix, the test should wait for the secondaries to catch up to the primary before attempting to downgrade.

      If an operator encounters this situation in practice, the intention is that she or he restarts the node as 3.4 and tries to downgrade again once it has caught up.

            Assignee:
            david.storch@mongodb.com David Storch
            Reporter:
            david.storch@mongodb.com David Storch
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: