Edit report at https://bugs.php.net/bug.php?id=81041&edit=1
ID: 81041
Comment by: m at m dot cz
Reported by: mvorisek at mvorisek dot cz
Summary: Phpstan does not finish on Windows when opcache is
enabled
Status: Open
Type: Bug
Package: opcache
Operating System: *
PHP Version: 7.4.19
Block user comment: N
Private report: N
New Comment:
So there is some opcache issue with file_cache_only.
On Windows, I collected the trace logs using xDebug 2.9.x, see https://github.com/mvorisek/phpstan-src/commit/2f14329c69e457b494bab868b6d2c8247e283dc4#diff-3aea6cf619d0b900724dd43ee0706fcd5e1dfc6af9e6a455a98c8540c20bac2bR13
config, and the the issue was present even with xdebug. Please be aware, that it produces a trace
log with size around 100 GB and it takes about 2 hours to complete.
Previous Comments:
------------------------------------------------------------------------
[2021-06-08 15:10:03] cmb@php.net
Unassigning myself â maybe someone else will have closer look.
------------------------------------------------------------------------
[2021-06-01 12:01:40] cmb@php.net
Further findings: this is not particularly related to Windows;
you get the same failure on Ubuntu as well, with SHM cache[1]
and with file_cache_only[2]. However, the script runs fine as
soon as Xdebug is loaded, even on Windows[3].
Interestingly, running with file_cache_only and Xdebug (3.0.4)
loaded, there are no repro/ui/vendor/atk4/core files are generated
in the file cache. That explains why the script is running fine
with Xdebug, although I have no idea why the files are not cached.
That might be an Xdebug issue.
[1] <https://github.com/cmb69/phpstan-src/actions/runs/895876662>
[2] <https://github.com/cmb69/phpstan-src/actions/runs/895872108>
[3] <https://github.com/cmb69/phpstan-src/actions/runs/895881729>
------------------------------------------------------------------------
[2021-05-27 20:05:44] m at m dot cz
Where else the bug should be? See the generated xdebug trace logs - I generated them in absolutely
same enviromenment without any random/time functions used inside. One with opcache enabled, one with
opcached disabled. And they differs.
------------------------------------------------------------------------
[2021-05-27 17:13:53] cmb@php.net
On Windows with OPcache enabled, by the time
Atk4\Core\ReadableCaptionTrait is to be autoloaded,
PHPStan\Reflection\BetterReflection\SourceLocator\FileReadTrapStreamWrapper
is registered as file wrapper, so an empty file is compiled, and
the trait is not found. That happens just for that single file;
all the rest is good. I'm not sure that there is actually a bug
in php-src.
------------------------------------------------------------------------
[2021-05-25 10:11:17] m at m dot cz
@cmb Did you get anywhere?
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=81041
--
Edit this bug report at https://bugs.php.net/bug.php?id=81041&edit=1