This PR was submitted for the master branch but it was merged into the 2.3 branch instead (closes#16798).
Discussion
----------
[Process] Unset callback after stop to free memory
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
As of yet, a `Process` instance can't free memory.
The built-in callback has a self-reference to the intance not cleared after instance destruction.
I've tried to change both `buildCallback` and https://github.com/symfony/process/blob/v2.7.6/Process.php#L1373 usage to avoid self-referencing, but it can't be done without breaking BC, and the memory issue is still there.
A simple test script (that obiously can't be embedded in unit-tests)
```php
for ($inc = 0; $inc < 10000; $inc++) {
$process = new Symfony\Component\Process\Process('echo 1');
$process->mustRun();
$process->stop();
unset($process);
echo (memory_get_usage(true) / 1000000) . ' MB ' . $inc . PHP_EOL;
}
```
Before:
```
1.572864 MB 0
5.505024 MB 9999
```
After:
```
1.572864 MB 0
1.572864 MB 9999
```
Ok, in this simple scenario 4 MB of RAM is nothing, but in our business app full of IOC where `unset`-ting is hard, our RAM explodes.
After `stop()`, the callback is no longer necessary.
To be clear, the garbage collector in the previous example was already active.
Deactivating it manually, which somewhere is needed to avoid particluar segfaults, obiously leads to worse scenarios:
Before:
```
gc_disable();
1.572864 MB 0
29.360128 MB 9999
```
After:
```
gc_disable();
1.572864 MB 0
1.572864 MB 9999
```
Commits
-------
ec93b9a [Process] Unset callback after stop to free memory
This PR was squashed before being merged into the 2.3 branch (closes#16799).
Discussion
----------
Improve error message for undefined DIC aliases
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR | n/a
Additionally, I think the arguments need to be the other way round (`templating` is an alias pointing to `templating.engine.twig`).
Commits
-------
9195cd3 Improve error message for undefined DIC aliases
This PR was merged into the 2.3 branch.
Discussion
----------
CS: remove unneeded parentheses around control statements
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | ?
| Fixed tickets | N/A
| License | MIT
| Doc PR | N/A
Commits
-------
45d250d CS: remove unneeded parentheses around control statements
This PR was submitted for the 2.8 branch but it was merged into the 2.3 branch instead (closes#16772).
Discussion
----------
Refactoring EntityUserProvider::__construct() to not do work, cause cache warm error
| Q | A
| ------------- | ---
| Bug fix? | "yes"
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | none
| License | MIT
| Doc PR | n/a
This fixes a "Database not Found" error when using `doctrine/orm` 2.5 while warming up your cache under certain situations. Basically, if you use the `EntityUserProvider`, then during cache warmup, Twig requires the `security.authorization_checker` which eventually requires this `EntityUserProvider`, which previously caused Doctrine to calculate the metadata for your User class. If no database exists (and you haven't specified the platform), you'll get the error.
More broadly, this simply tries to do less work in the constructor. It's a "bug fix", only kind of, but as it's completely an internal refactoring, it should be quite safe.
Thanks!
Commits
-------
44a2861 Refactoring EntityUserProvider::__construct() to not do work, cause cache warm error
This PR was merged into the 2.3 branch.
Discussion
----------
[Process] Fix signaling/stopping logic on Windows
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Commits
-------
9afbea2 [Process] Fix signaling/stopping logic on Windows
This PR was submitted for the master branch but it was merged into the 2.3 branch instead (closes#16737).
Discussion
----------
[Yaml] minor CS cleaning
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
PHPStorm reported different types of coding style suggestions along the Symfony codebase. I've fixed some of them in the Yaml compontent and I have two questions:
1) What is the correct branch for such changes? Not all of them can be fixed in 2.3/2.8, for example `ParserTest`'s docblock is different there.
2) Should I create similar PRs for other components or is there a plan to do all such fixes at once someday in the future (e.g. after 2.8/3.0 is released)?
Commits
-------
613804d [Yaml] minor CS cleaning
This PR was merged into the 2.3 branch.
Discussion
----------
[Console] do not encode backslashes in console default description
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #16420
| License | MIT
| Doc PR | -
Commits
-------
873a541 [Console] do not encode backslashes in console default description
This PR was squashed before being merged into the 2.3 branch (closes#16312).
Discussion
----------
[HttpKernel] clearstatcache() so the Cache sees when a .lck file has been released
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #15813
| License | MIT
| Doc PR | n/a
I've been trying to debug #15813 and modified the Store in a way to keep unique request IDs in the .lck file. That way, I was hoping to find out which request is blocking and/or if the request is actually still running.
It turned out that `is_file()` would claim that a lock file still exists, but a subsequent attempt to read the information from that file returned "file not found" errors.
So, my assumption is that the `is_file()` result is based on the fstat cache and wrong once a process has seen the lock file.
@jakzal said in https://github.com/symfony/symfony/issues/15813#issuecomment-149013691 that `unlink()`ing the lock file should clear the statcache, but I doubt this is true across PHP processes.
Commits
-------
982710f [HttpKernel] clearstatcache() so the Cache sees when a .lck file has been released
This PR was merged into the 2.3 branch.
Discussion
----------
[Process] Don't catch RuntimeException when it complicates tests debugging
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
See https://github.com/symfony/symfony/pull/16702/files?w=1
Commits
-------
8588a4f [Process] Don't catch RuntimeException when it complicates tests debugging
This PR was merged into the 2.3 branch.
Discussion
----------
[appveyor] Workaround transient segfault when APCu is enabled
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #15617
| License | MIT
| Doc PR | -
See e.g. https://ci.appveyor.com/project/nicolas-grekas/symfony/build/1.0.4#L1186
Commits
-------
12a152b [appveyor] Workaround transient segfault when APCu is enabled
This PR was submitted for the 2.8 branch but it was merged into the 2.3 branch instead (closes#16700).
Discussion
----------
Fixed the wrong source name and the ja translation
Commits
-------
90f3b94 Fixed the wrong source name and the ja translation
This PR was merged into the 2.3 branch.
Discussion
----------
[SecurityBundle] disable the init:acl command if ACL is not used
| Q | A
| ------------- | ---
| Bug fix? | somewhat
| New feature? | somewhat
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR | -
Related to #16694 but this should go in 2.3 IMO because it was just forgotten. The other acl command already has this logic: https://github.com/symfony/symfony/blob/2.7/src/Symfony/Bundle/SecurityBundle/Command/SetAclCommand.php#L36
It ensures the command list is not flooded with unusable commands.
Commits
-------
55f84a3 [SecurityBundle] disable the init:acl command if ACL is not used
This PR was merged into the 2.3 branch.
Discussion
----------
Always enable clock-mock for HttpFoundation
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #16660
| License | MIT
| Doc PR | -
Commits
-------
1712086 Always enable clock-mock for HttpFoundation
This PR was merged into the 2.3 branch.
Discussion
----------
[ClassLoader] Fix parsing namespace when token_get_all() is missing
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #14871
| License | MIT
| Doc PR | -
Commits
-------
4a17c9e [ClassLoader] Fix parsing namespace when token_get_all() is missing
This PR was submitted for the 2.8 branch but it was merged into the 2.3 branch instead (closes#16386).
Discussion
----------
Bug #16343 [Router] Too many Routes ?
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | https://github.com/symfony/symfony/issues/16343
| License | MIT
| Doc PR | N/A
Seems there is an issue when you have more than 7265 routes declared,
The routes are generated into the cached appDevUrlGenerator.php but php only loads the last 7265 elements of the array.
Commits
-------
0113ac3 Bug #16343 [Router] Too many Routes ?
This PR was merged into the 2.3 branch.
Discussion
----------
[travis] Disable xdebug on PHP7
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Commits
-------
dfda5ce [travis] Disable xdebug on PHP7