-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Description
Expand the area of ScopeTrackedObject usage.
Currently the ScopeTrackedObject is used at the L7 stream level. The mechanism essentially registers that the dispatcher is doing some particular work.
When a Fatal Error occurs on a thread, we invoke several debug actions on the dispatcher that encountered the error, trying to also leverage the ScopeTrackedObject (what it was working on at the time) to give additional insight into the crash.
With this mechanism as is, there are many parts of the pipeline (see image below) that if we "burst" (crashed) there we'd get no additional information. Furthermore, even when we do crash at the L7 level we have room to improve what we dump -- we don't dump some useful L4 information such as IP address IIRC.
Ideally, we should be able to crash along any point of the pipeline and get information from the earlier phase from the pipeline as well. This will likely mean extending what objects implement the ScopedTrackedObject interface, and probably changing how the dispatcher tracks ScopeTrackedObjects, perhaps as a stack vs as a single object.
Let me know if that makes sense, thanks.
