-
Notifications
You must be signed in to change notification settings - Fork 30
Open
Labels
backlogWe hope to fix this feature/bug in the futureWe hope to fix this feature/bug in the futurebugConfirmed bugConfirmed bug
Description
Describe the bug
Asp.Net client would keep adding the same middleware to the static _globalClient if Bugsnag.Client.Current is called outside of a request scope and call to BeginNotify() is called subsequently to add a middleware.
This results in a memory leak since _globalClient is static. When Notify() 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
- Invoke a async function with
ConfigureAwait(false)or use Task.Run() - Get a BugSnag client using
Bugsnag.Client.Currentwhen the HttpContext.current is no long in scope. - Add a middleware.
- Repeat this across many requests
- Trigger Notify() on the global client
You would see a lot of exceptions in performance counters.
Environment
- Bugsnag version: N/A
- .NET framework version: 4.7.2
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.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
backlogWe hope to fix this feature/bug in the futureWe hope to fix this feature/bug in the futurebugConfirmed bugConfirmed bug