[SERVER-35563] The UUIDCatalog onCreateCollection observer should atomically unregister and re-register catalog entries Created: 12/Jun/18 Updated: 29/Oct/23 Resolved: 25/Jun/18 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Catalog |
| Affects Version/s: | None |
| Fix Version/s: | 4.0.1, 4.1.1 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Louis Williams | Assignee: | Ben Judd |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | neweng | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||
| Operating System: | ALL | ||||||||||||||||
| Backport Requested: |
v4.0
|
||||||||||||||||
| Sprint: | Storage NYC 2018-07-02 | ||||||||||||||||
| Participants: | |||||||||||||||||
| Linked BF Score: | 38 | ||||||||||||||||
| Description |
|
DatabaseImpl::renameCollection uses the onCreateCollection UUID catalog observer, which does not atomically unregister and re-register the UUID of the collection being renamed. There is a race condition reading while the UUID is not registered to any collection. The recent addition of replaceUUIDCatalogEntry, which atomically swaps the UUIDs, should be used instead. The other problem of rename using the createCollection UUID catalog observer is tracked by |
| Comments |
| Comment by Githook User [ 03/Jul/18 ] |
|
Author: {'username': 'Icantjuddle', 'name': 'Ben Judd', 'email': 'ben.judd@10gen.com'}Message: (cherry picked from commit 26b3b97ad24d8592e2f93e79f2dc18a8b76d3b3d) |
| Comment by Githook User [ 25/Jun/18 ] |
|
Author: {'username': 'Icantjuddle', 'name': 'Ben Judd', 'email': 'ben.judd@10gen.com'}Message: |