[SERVER-33282] Listen for interrupt while waiting on the next event from the AsyncResultsMerger Created: 12/Feb/18 Updated: 29/Oct/23 Resolved: 26/Feb/18 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Querying |
| Affects Version/s: | None |
| Fix Version/s: | 3.7.3 |
| Type: | Improvement | Priority: | Major - P3 |
| Reporter: | Charlie Swanson | Assignee: | Ian Boros |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Backwards Compatibility: | Fully Compatible |
| Sprint: | Query 2018-02-26, Query 2018-03-12 |
| Participants: |
| Description |
|
When the AsyncResultsMerger is blocked waiting on results from remote shards, we sometimes wait for it to finish via this overload of TaskExecutor::waitForEvent() instead of this one. The one that does not have an OperationContext cannot be interrupted by another thread, so will block until the event is signaled. We should switch all the call sites to use the version that takes an OperationContext, to ensure they can be interrupted and quickly cleaned up. |
| Comments |
| Comment by Githook User [ 26/Feb/18 ] |
|
Author: {'email': 'ian.boros@10gen.com', 'name': 'Ian Boros'}Message: |