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

Heartbeat response received during application of recipient config may interrupt shard split

    XMLWordPrintableJSON

Details

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major - P3 Major - P3
    • 6.1.0-rc0
    • None
    • None
    • None
    • Fully Compatible
    • ALL
    • Server Serverless 2022-04-18

    Description

      The following steps describe an error discovered when developing the shard split passthrough test fixtures:

      1. Donor applies split config locally, and increases its term/version to (2, 1)
      1. Recipient node issues a heartbeat with term/version (1, 1) to donor
      2. Recipient concurrently receives a heartbeat with the split config, and applies the recipient config locally with term/version (1,1) (resets to the initial term/version for this new set name)
      3. Recipient receives a response for the heartbeat it sent before changing its set name, the response includes a config for the donor at (2,1)
      4. Because set name is not considered during validation of incoming config, the recipient now attempts to apply the config for the old set name to itself locally. This fails for other, unrelated validations.

      The fix is to reject heartbeat responses for set names which do not match the local set name.

      Attachments

        Activity

          People

            matt.broadstone@mongodb.com Matt Broadstone
            matt.broadstone@mongodb.com Matt Broadstone
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: