Bug #81041 [Com]: Phpstan does not finish on Windows when opcache is enabled

From: Date: Fri, 25 Jun 2021 18:44:21 +0000
Subject: Bug #81041 [Com]: Phpstan does not finish on Windows when opcache is enabled
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-234634@lists.php.net to get a copy of this message
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: Can someone look at it? This may be a serious issue for every Windows platform as the problematic configuration is default and a lot of projects are CI tested against linux only. Previous Comments: ------------------------------------------------------------------------ [2021-06-09 10:17:59] m at m dot cz 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. ------------------------------------------------------------------------ [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. ------------------------------------------------------------------------ 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

« previous php.bugs (#234634) next »