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

Index operations from 4.2 mongos shouldn't abort migrations

    XMLWordPrintableJSON

Details

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major - P3 Major - P3
    • 4.3.4
    • None
    • Sharding
    • None
    • Fully Compatible
    • ALL
    • Sharding 2020-02-10, Sharding 2020-02-24
    • 30

    Description

      As of SERVER-44911, an index operation (e.g. dropIndexes, createIndexes) will interrupt concurrent outgoing migrations. If a migration is interrupted in the critical section, it can lead to an fassert when the shard is running in FCV 4.2 (as described in SERVER-45752). This isn't a problem for index operations sent from a 4.4 binary mongos, because they will have a shard version and will wait for the critical section to complete. Operations from a 4.2 binary mongos (possible in a mixed version cluster) instead use the old protocol and are sent to all shards without a shard version, so they can bypass the critical section, interrupt a committing migration, and lead to the fassert.

      Instead, only index operations sent from a 4.4 mongos should abort migrations, which can be differentiated by checking if the command was sent with a shard version using OperationShardingState::isOperationVersioned().

      Attachments

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved: