[SERVER-51819] Remove joinAsync from AbstractAsyncComponent Created: 23/Oct/20 Updated: 29/Oct/23 Resolved: 30/Oct/20 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 4.9.0 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Matthew Russotto | Assignee: | Matthew Russotto |
| 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 | ||||||||||||||||
| Sprint: | Repl 2020-11-02 | ||||||||||||||||
| Participants: | |||||||||||||||||
| Linked BF Score: | 0 | ||||||||||||||||
| Description |
|
Using a future-based join()/joinAsync() for AbstractAsyncComponent introduces a subtle race where a subclass may be destroyed while holding the mutex. Since we turned out not to need joinAsync, it is simplest to fix this by reverting to the old condition variable based method. |
| Comments |
| Comment by Githook User [ 30/Oct/20 ] |
|
Author: {'name': 'Matthew Russotto', 'email': 'matthew.russotto@mongodb.com', 'username': 'mtrussotto'}Message: |