[SERVER-37055] IndexBuildBlock::fail() should grab a lock Created: 07/Sep/18 Updated: 29/Oct/23 Resolved: 11/Oct/18 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Storage |
| Affects Version/s: | None |
| Fix Version/s: | 4.0.4, 4.1.5 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Martin Neupauer | Assignee: | Gregory Wlodarek |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| 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-10-08, Storage NYC 2018-10-22 | ||||||||
| Participants: | |||||||||
| Linked BF Score: | 1 | ||||||||
| Description |
|
During the initial sync there can be multiple indices build in parallel in the same time. If for some reason all builders fail at the same time (e.g. a shutdown is initiated) then the fail() method tries to clean up the IndexCatalog. However, the IndexCatalog access is not multi thread safe so all kind of things can go bad with concurrent multiple executions of the fail() method. |
| Comments |
| Comment by Githook User [ 22/Oct/18 ] |
|
Author: {'name': 'Gregory Wlodarek', 'email': 'gregory.wlodarek@mongodb.com', 'username': 'GWlodarek'}Message: (cherry picked from commit 0272ec068f5da65458d7a081beac583b33b610d1) |
| Comment by Githook User [ 11/Oct/18 ] |
|
Author: {'name': 'Gregory Wlodarek', 'email': 'gregory.wlodarek@mongodb.com', 'username': 'GWlodarek'}Message: |