[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 SERVER-38957 – this situation is avoided completely if we do not allow assert based on the status of a changelog write.

Generated at Thu Feb 08 04:49:35 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.