[SERVER-28736] Add instrumentation to note long running user provided callbacks on IO threads Created: 11/Apr/17 Updated: 31/Jul/17 Resolved: 31/Jul/17 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Networking |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Andrew Morrow (Inactive) | Assignee: | DO NOT USE - Backlog - Platform Team |
| Resolution: | Won't Fix | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Backwards Compatibility: | Fully Compatible |
| Sprint: | Platforms 2017-04-17, Platforms 2017-08-21 |
| Participants: |
| Description |
|
Right now there is no protection against network layer worker threads being blocked by misbehaving callbacks. We can't easily prevent this behavior, but it would be possible to add instrumentation that would note (or, more aggressively, fail an invariant) if any callback out of the ASIO network layer ran beyond a certain configurable threshold. If those warnings or invariants trip, it gives a good indication that a blocking callback may exist. |