[SERVER-62580] When migration commit fails, donor should not tell recipient to exit its critical section before running recovery Created: 13/Jan/22 Updated: 29/Oct/23 Resolved: 14/Jan/22 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Sharding |
| Affects Version/s: | None |
| Fix Version/s: | 5.3.0 |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Jordi Serra Torrens | Assignee: | Jordi Serra Torrens |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Backwards Compatibility: | Fully Compatible |
| Sprint: | Sharding EMEA 2022-01-24 |
| Participants: |
| Description |
|
If the migration commit to the configsvr fails after exhausting retries (e.g. donor did not receive an answer, but the commit message might be stuck somewhere in a router), the donor must not yet tell the recipient to exit its critical section. This is because it is still possible that the commit request arrives to the configsvr and succeeds. Instead, if the commit command invocation does not succeed, we should just run migration recovery so that the recipient critical section will be released after ensureChunkVersionIsGreaterThan has been executed, which guarantees that the migration will no longer be able to commit. |
| Comments |
| Comment by Githook User [ 14/Jan/22 ] |
|
Author: {'name': 'Jordi Serra Torrens', 'email': 'jordi.serra-torrens@mongodb.com', 'username': 'jordist'}Message: |