[SERVER-50174] Multiple concurrent migration recoveries after step-up can race for the fixed Lsid/TxnNumber Created: 07/Aug/20  Updated: 29/Oct/23  Resolved: 08/Aug/20

Status: Closed
Project: Core Server
Component/s: Sharding
Affects Version/s: None
Fix Version/s: 4.7.0

Type: Bug Priority: Major - P3
Reporter: Kaloian Manassiev Assignee: Kaloian Manassiev
Resolution: Fixed Votes: 0
Labels: PM-1645-Milestone-1
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Problem/Incident
causes SERVER-62245 MigrationRecovery must not assume tha... Closed
Backwards Compatibility: Fully Compatible
Operating System: ALL
Sprint: Sharding 2020-08-10
Participants:

 Description   

All MigrationCoordinator(s) started from a single MongoD instance share the same logical session id for any operations that they perform (for the lifetime of that instance). Because of this, it is never correct that two migration coordinators exist at the same time.

Under normal circumstances, this is guaranteed by the acquisition of the MigrationBlockingGuard at the beginning of each migration. However, in the case where an incomplete migration needs to be recovered, we don't take it. Because of this, it is possible that a migration for a completely unrelated collection can start while a different collection is still running recovery.



 Comments   
Comment by Githook User [ 07/Aug/20 ]

Author:

{'name': 'Kaloian Manassiev', 'email': 'kaloian.manassiev@mongodb.com', 'username': 'kaloianm'}

Message: SERVER-50174 Make MigrationCoordinator recovery acquire the MigrationBlockingGuard
Branch: master
https://github.com/mongodb/mongo/commit/2931f3c764f8e093ae31adb4b2b62c1ce01d7421

Generated at Thu Feb 08 05:21:58 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.