[SERVER-31988] RollbackViaRefetch makes CollectionImpl validator out of sync with CollectionCatalogEntry Created: 15/Nov/17 Updated: 30/Oct/23 Resolved: 21/Nov/17 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Replication |
| Affects Version/s: | None |
| Fix Version/s: | 3.6.0-rc5, 3.7.1 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Judah Schvimer | Assignee: | Judah Schvimer |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | rbfz | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Attachments: |
|
||||||||||||||||||||
| Issue Links: |
|
||||||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||||||
| Operating System: | ALL | ||||||||||||||||||||
| Backport Requested: |
v3.6
|
||||||||||||||||||||
| Sprint: | Repl 2017-12-04 | ||||||||||||||||||||
| Participants: | |||||||||||||||||||||
| Description |
|
To check the validator, or to update the validator via a collMod command, mongod uses the validator cached in CollectionImpl. Since rollback doesn't update that validator, they get out of sync. |
| Comments |
| Comment by Githook User [ 21/Nov/17 ] |
|
Author: {'name': 'Judah Schvimer', 'username': 'judahschvimer', 'email': 'judah@mongodb.com'}Message: (cherry picked from commit 4053104a4a0336304c8eab82d985941cd5e5e617) |
| Comment by Githook User [ 21/Nov/17 ] |
|
Author: {'name': 'Judah Schvimer', 'username': 'judahschvimer', 'email': 'judah@mongodb.com'}Message: |
| Comment by Judah Schvimer [ 15/Nov/17 ] |
|
I think we need to use the CollectionImpl helper functions for setting the validation, and simply pass in the "off" value for each if not specified. This is because the default for validators is not the "off" value. |
| Comment by Judah Schvimer [ 15/Nov/17 ] |
|
I've attached a repro script. |
| Comment by Judah Schvimer [ 15/Nov/17 ] |
|
This affects both the "with UUID" and "without UUID" variants of rollback. |