* Fixes edge case on windows where PHP does not generate a PHP Warning but instead returns a wrong result https://bugs.php.net/bug.php?id=71103
* Improved error reporting on `unlink` used in `remove()`
This PR was merged into the 2.3 branch.
Discussion
----------
Clean useless deprecation silencing
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
We added these when we triggered unsilenced notices. But we silence them now.
Commits
-------
9953550 Clean useless deprecation silencing
This PR was merged into the 2.3 branch.
Discussion
----------
[Process] Enhance compatiblity with --enable-sigchild
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #16888
| License | MIT
| Doc PR | -
This is complete rewrite of the fallback `--enable-sigchild` handling in the Process class.
It removes most of the differences between this and a non-sigchild-enabled php.
Which means the test suite doesn't need anymore to be replayed 3 times (which is how I started this PR, looking for a way to test this component in less time).
I validated this with a locally compiled php, sigchild-enabled. Green.
Changes affect only this special-mode php.
Ping @romainneutron and @Seldaek (original writer of the sigchild support)
Submitted on 2.3 as bugfix, which it is to me.
Commits
-------
e7cc4aa [Process] Enhance compatiblity with --enable-sigchild
This PR was merged into the 2.3 branch.
Discussion
----------
[FrameworkBundle] prevent cache:clear creating too long paths
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #15547#16783
| License | MIT
| Doc PR | -
Commits
-------
6e279c5 [FrameworkBundle] prevent cache:clear creating too long paths
This PR was merged into the 2.3 branch.
Discussion
----------
[Process] Always call proc_close
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #15617
| License | MIT
| Doc PR | -
This should fix one more transient test, and a wrong behavior.
Commits
-------
ccb67d7 [Process] Always call proc_close
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
Conflicts:
src/Symfony/Component/Validator/Resources/translations/validators.lb.xlf
This PR was merged into the 2.3 branch.
Discussion
----------
[FrameworkBundle] Disable the server:run command when Process component is missing
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
This also backports the improvement for the `suggest` section from #16650 to the `2.3` branch.
Commits
-------
99d1741 disable server:run cmd without Process component
604174c Suggested Process dependency
This PR was merged into the 2.3 branch.
Discussion
----------
[Process] Fix stopping a process on Windows
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #15617
| License | MIT
| Doc PR | -
Commits
-------
80fb51c [Process] Fix stopping a process on Windows
This PR was merged into the 2.3 branch.
Discussion
----------
CS: general fixes
| 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
-------
d3f671e CS: general fixes
This PR was merged into the 2.3 branch.
Discussion
----------
[MonologBridge] Added a test case for the Logger class
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | none
| License | MIT
| Doc PR | none
So far, there is no test case that ensures that the `Symfony\Bridge\Monolog\Logger` can be instantiated. Because of this, bug #16837 was not discovered by the tests. This PR adds a simple test case that tests some basic functionality of that particular class.
Commits
-------
78c0a6e Added a test case for the Logger class.
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