Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Routing] fix memoryleak when loading compiled routes #34920

Merged
merged 1 commit into from Dec 11, 2019

Conversation

nicolas-grekas
Copy link
Member

Q A
Branch? 4.3
Bug fix? yes
New feature? no
Deprecations? no
Tickets -
License MIT
Doc PR -

Same as #34918 for Routing. That's the last significant memory hog I've identified.

@stof
Copy link
Member

stof commented Dec 10, 2019

The static cache should be keyed by cache file. Otherwise, this will break things in case you have multiple router instances in the project with different config (I already saw such cases, for instance when using https://github.com/hautelook/TemplatedUriRouter in parallel of the normal router)

@stof
Copy link
Member

stof commented Dec 10, 2019

OK, I'm tired. That's already the case.

private static function getCompiledRoutes(string $path): array
{
if ([] === self::$cache && \function_exists('opcache_invalidate') && filter_var(ini_get('opcache.enable'), FILTER_VALIDATE_BOOLEAN) && (!\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) || filter_var(ini_get('opcache.enable_cli'), FILTER_VALIDATE_BOOLEAN))) {
self::$cache = null;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the reason for disabling this memory cache when using OPCache ? Does OPCache fix the memory leak ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, opcache fixes the leak: the required data are plain arrays, which don't leak.

@fabpot
Copy link
Member

fabpot commented Dec 11, 2019

Thank you @nicolas-grekas.

fabpot added a commit that referenced this pull request Dec 11, 2019
…olas-grekas)

This PR was merged into the 4.3 branch.

Discussion
----------

[Routing] fix memoryleak when loading compiled routes

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

Same as #34918 for Routing. That's the last significant memory hog I've identified.

Commits
-------

85371a1 [Routing] fix memoryleak when loading compiled routes
@fabpot fabpot merged commit 85371a1 into symfony:4.3 Dec 11, 2019
@nicolas-grekas nicolas-grekas deleted the routing-leak branch December 13, 2019 13:57
This was referenced Dec 19, 2019
@fabpot fabpot mentioned this pull request Jan 21, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants