[SERVER-38653] Don't allow stale MovePrimarySourceManager pointers to exist on DatabaseShardingStates on transition to primary. Created: 14/Dec/18 Updated: 14/Jan/19 Resolved: 14/Jan/19 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Sharding |
| Affects Version/s: | 4.0.4, 4.1.6 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Blake Oler | Assignee: | Blake Oler |
| Resolution: | Won't Fix | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Operating System: | ALL |
| Participants: |
| Description |
|
If a source shard primary steps down during a movePrimary, it's possible that the MovePrimarySourceManager variable never gets cleared. If the same node steps up and retries to move the same database, it will cause an invariant. We should clear the MovePrimarySourceManager variables for databases for which a shard is primary on step-up (somewhere around here. If we do so, we can guarantee a clean state for all attempted movePrimaries. |
| Comments |
| Comment by Blake Oler [ 14/Jan/19 ] |
|
Closing in favor of |