Open oldcookie opened 1 year ago
Hi @oldcookie, Thanks for raising we are going to look to get this fixed. In the meantime it would be interesting to know if you've managed to work around it?
Yes, we added a check for HttpContext.current != null
before adding a middleware, which bypasses the situation where this turns into an issue.
Describe the bug
Asp.Net client would keep adding the same middleware to the static
_globalClient
ifBugsnag.Client.Current
is called outside of a request scope and call toBeginNotify()
is called subsequently to add a middleware.This results in a memory leak since
_globalClient
is static. WhenNotify()
is called, this also results a very long running loop and a lot of handled exceptions due to the large number of middleware linked to the globalclient.Steps to reproduce
ConfigureAwait(false)
or use Task.Run()Bugsnag.Client.Current
when the HttpContext.current is no long in scope.You would see a lot of exceptions in performance counters.
Environment
BeforeNotify()
should probably check if it is using the_globalClient
and not add a middleware or middleware should be stored using a HashSet instead to prevent duplicates.