[SERVER-65495] Heartbeat response received during application of recipient config may interrupt shard split Created: 12/Apr/22  Updated: 29/Oct/23  Resolved: 14/Apr/22

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 6.1.0-rc0

Type: Bug Priority: Major - P3
Reporter: Matt Broadstone Assignee: Matt Broadstone
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Backwards Compatibility: Fully Compatible
Operating System: ALL
Sprint: Server Serverless 2022-04-18
Participants:

 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.



 Comments   
Comment by Githook User [ 14/Apr/22 ]

Author:

{'name': 'Matt Broadstone', 'email': 'mbroadst@mongodb.com', 'username': 'mbroadst'}

Message: SERVER-65495 Reject inconsistent set names in heartbeat responses
Branch: master
https://github.com/mongodb/mongo/commit/bc24f41061273bf92700b2f552c04cbf53cee249

Generated at Thu Feb 08 06:02:52 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.