-
-
Notifications
You must be signed in to change notification settings - Fork 9.4k
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
[Behat]Cannot run full tests suites with symfony 4.4 #34687
Comments
Likely fixed by #34580 |
@nicolas-grekas : I guess you mean #34567 ? |
I checked my file vendor/symfony/http-kernel/Kernel.php And here's the content for the line 517 has mentionned in #34580 change log
I still have the memory error |
Same here since SF 4.4, Behat tests seems to use a lot more memory and full tests suite fails on CircleCI with error |
Thought I was alone 😄 |
Reproducer and/or Blackfire profile welcome. Otherwise it's going to be yours to debug. |
I profile two calls of a subset of my behat tests If I try to combine the two tags, I'm unable to profile with an out of memory error |
Can you profile the same but with Symfony 4.3 and share the profile comparison? |
I did not understand this part: does setting this to true fix the issue? or setting it to false maybe? |
No setting this to true doesn't fix the problem, and without it it doesn't work either |
I tried again with SF 4.4.1 (since #34580 has been merged) and still have the issue on CircleCI, it fails 90% of the time with the SF 4.3.8 265 scenarios (264 passed, 1 failed)
3811 steps (3642 passed, 1 failed, 168 skipped)
27m13.66s (301.51Mb) SF 4.4.1 265 scenarios (264 passed, 1 failed)
3811 steps (3642 passed, 1 failed, 168 skipped)
26m10.73s (2.44Gb) As I don't have this issue on my local env but only on CircleCI (not the same memory amount available), I don't have a blackfire profile to share... Is there any other way to help you investigate this (other than setup blackfire on CircleCI) ? Thanks |
Providing a small app we could run locally to reproduce the issue would be the best help! |
@michaoj, do you use Panther ( The issue might come from this, as I don't have any issue with pure PHPUnit using 4.3.9
4.4.1
|
No, my test suites does not rely yet on a browser driver |
…s-grekas) This PR was merged into the 3.4 branch. Discussion ---------- [Cache] fix memory leak when using PhpArrayAdapter | Q | A | ------------- | --- | Branch? | 3.4 | Bug fix? | yes | New feature? | no | Deprecations? | no | Tickets | Fix #34687 | License | MIT | Doc PR | - Thanks to @adrienfr, I've been able to understand what causes this massive memory leak when using `PhpArrayAdapter`: ![image](https://user-images.githubusercontent.com/243674/70262187-303b1b00-1794-11ea-9fcb-21ae29c31ff0.png) When tests run, a new kernel is booted for each test case. This means a new instance of `PhpArrayAdapter` is created, which means it loads its state again and again using `include` for e.g. `annotations.php` in this example. The first obvious thing is that we see this doing `compile::*`: this means PHP is parsing the same file again and again. But shouldn't opcache prevent this? Well, it's disabled by default because `opcache.enable_cli=0`. To prove the point, here is a comparison with the same tests run with `php -dopcache.enable_cli=1`. The comparison is swapped, but you'll get it: ![image](https://user-images.githubusercontent.com/243674/70262616-fb7b9380-1794-11ea-81c3-6fea0145a63b.png) But that's not over: because of https://bugs.php.net/76982 (see #32236 also), we still have a memory leak when the included file contains closures. And this one does. This PR fixes the issue by storing the return value of the include statement into a static property. This fits the caching model of `PhpArrayAdapter`: it's a read-only storage for system caches - i.e. its content is immutable. Commits ------- 4194c4c [Cache] fix memory leak when using PhpArrayAdapter
…s-grekas) This PR was merged into the 4.3 branch. Discussion ---------- [Cache] fix memory leak when using PhpFilesAdapter | Q | A | ------------- | --- | Branch? | 4.3 | Bug fix? | yes | New feature? | no | Deprecations? | no | Tickets | Fix #34687 | License | MIT | Doc PR | - Similar to #34839 but for `PhpFilesAdapter`, as the "appendOnly" mode is a v4-only feature. Commits ------- 0b46226 [Cache] fix memory leak when using PhpFilesAdapter
Symfony version(s) affected: 4.4.0
Description
When I run my behat tests, I end up getting a
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32768 bytes) in /var/www/project/var/cache/test/pools/AqNbLoad6z/E/7/9TL8Zv8iSmZZttWPui9Q on line 1
after several scenariiHow to reproduce
This occurs every time I try to run the full behat tests suite
Possible Solution
Maybe a container reload issue ?
Additional context
$container->setParameter('container.dumper.inline_factories', true);
The text was updated successfully, but these errors were encountered: