[SERVER-54167] configOpTime can become ahead of VectorClock::clusterTime Created: 01/Feb/21 Updated: 29/Oct/23 Resolved: 04/Feb/21 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Sharding |
| Affects Version/s: | None |
| Fix Version/s: | 4.9.0 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Jordi Serra Torrens | Assignee: | Jordi Serra Torrens |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | PM-1965-Milestone-0-Metadata-Format | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||
| Operating System: | ALL | ||||||||||||||||
| Steps To Reproduce: | Run the sharding suite with the changes in this patch that adds an invariant:
in Grid.cpp and check that it gets tripped.
|
||||||||||||||||
| Sprint: | Sharding 2021-02-08 | ||||||||||||||||
| Participants: | |||||||||||||||||
| Linked BF Score: | 45 | ||||||||||||||||
| Description |
|
The configOpTime (Grid::configOpTime()) can get ahead of the Vector's Clock clusterTime following the this sequence of events:
The order in which the metadata egress hooks are called is set here for the mongos and here for mongod. Changing the hooks order so that the configOpTime hook runs before the vectorClock hook would not solve the issue, because of the fact that the hooks are run on the same order when reading reply metadata. If we did so, then the configOpTime would get advanced before VectorClock, leading to the same situation. |
| Comments |
| Comment by Githook User [ 04/Feb/21 ] |
|
Author: {'name': 'Jordi Serra Torrens', 'email': 'jordi.serra-torrens@mongodb.com', 'username': 'jordist'}Message: |