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

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

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 6.1.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None
    • Fully Compatible
    • ALL
    • Server Serverless 2022-04-18

      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.

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

              Created:
              Updated:
              Resolved: