Use cloned IDiagnosticsLogger in compiled query cache#21017
Closed
rducom wants to merge 1 commit intodotnet:release/3.1from
Closed
Use cloned IDiagnosticsLogger in compiled query cache#21017rducom wants to merge 1 commit intodotnet:release/3.1from
rducom wants to merge 1 commit intodotnet:release/3.1from
Conversation
6636883 to
a4bdd51
Compare
…led queries (and memory leak)
Contributor
|
This is not the right way to fix this issue. |
Author
|
Ok, what do you suggest ? |
Author
|
I think for 3.1, the fix should implies minimum code changes. If for 5.0 it's possible to do more "breaking" changes, here's what I think it could be :
Don't hesitate to share insights as I'm certainly missing the best way to implement the fix, and I'll really love trying any other suggested way to fix this. |
Author
|
I've submitted another PR, with another way to fix this issue : #21023 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #21016
This PR fixs the memory leak in compiled query cache
It introduce a IDiagnosticsLogger clone used in the QueryingEnumerable code paths, so the Closure held by compiled
Func<QueryContext,T>never reference Scoped instances via Interceptors.I have tried to use a IDiagnosticsLogger singleton, but since ILoggerFactory can be either scoped or singleton, going Singleton for DiagnosticsLogger requires breaking changes.
This "clone way" have minimum impact on the existing code base.