[SERVER-50996] Make ShardRegistry::_lookup() fail if topologyTIme apparently goes backwards Created: 17/Sep/20 Updated: 02/Feb/23 Resolved: 25/Jan/23 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Sharding |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Major - P3 |
| Reporter: | Kevin Pulo | Assignee: | Sergi Mateo Bellido |
| Resolution: | Duplicate | Votes: | 0 |
| Labels: | sharding-wfbf-day | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Assigned Teams: |
Sharding EMEA
|
||||||||
| Sprint: | Sharding EMEA 2023-02-06 | ||||||||
| Participants: | |||||||||
| Description |
|
If the maxTopologyTime from the config.shards documents is lower than the cached topologyTime (cachedData.getTime().topologyTime), then the ShardRegistry is doomed to infinitely refresh until this is no longer true. Better would be for _lookup() to fail (ie. uassert) in this case, so that the underlying operation will fail in this unexpected situation. |