Fix memory leak in AbstractHydrator #7315
Closed
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.
Method
hydrateAll()
does not take into account possibleexception from
hydrateAllData()
which in turn does not callcleanup()
This is the issue when single scalar is used since it throws exceptions. To demo this, one can just select from an empty table and see how the memory rises.
In this example, few test cases were provided. One that hydrates single scalar result and an other that hydrates an array. In the second case, the memory is constant.
After the fix, situation is as following
What do you suggest, how to add tests? Repeat the same query a few hundred times and set a reasonable threshold like 10MB?
Code used to test this can be found at https://github.com/zlikavac32/doctrine-memory-leak-demo