Edit report at https://bugs.php.net/bug.php?id=78512&edit=1
ID: 78512
Comment by: jhdxr@php.net
Reported by: nicolas dot grekas+php at gmail dot com
Summary: Cannot make preload work
Status: Open
Type: Bug
Package: opcache
PHP Version: 7.4.0RC1
Block user comment: N
Private report: N
New Comment:
I think I find the key to reproduce this issue. You have to be root, and run with
opcache.preload_user.
e.g.
sudo ~/proj/php-src/sapi/cli/php -S localhost:8000 -t preload-failures/public/
-dopcache.preload=preload-failures/var/cache/prod/srcApp_KernelProdContainer.preload.php
-dopcache.preload_user=jhdxr
Hope this helps.
Previous Comments:
------------------------------------------------------------------------
[2019-09-16 16:00:17] jhdxr@php.net
I confirm I can reproduce this issue with latest devilbox/php-fpm-7.4 docker image(588dad05d58f).
however, I got another error when I tried with my dev environment (latest 7.4 branch,
6417c507ce511ecfc5d3f3818ffb01435f3086ee).
./configure --disable-all --disable-cgi --disable-phpdbg --enable-cli --enable-debug
--enable-opcache
./sapi/cli/php -S localhost:8000 -t ~/proj/php-src-tests/bug78512/preload-failures/public/
-dopcache.preload=~/proj/php-src-tests/bug78512/preload-failures/var/cache/prod/srcApp_KernelProdContainer.php
php: /home/jhdxr/proj/php-src/Zend/zend_string.c:264: zend_string_init_interned_permanent: Assertion
`permanent' failed.
I'll try a full build later in my dev env to see if I can reproduce this issue.
------------------------------------------------------------------------
[2019-09-13 07:58:02] nikic@php.net
I've tried with the prod env now to see if that makes a difference, but can't reproduce
with that either. In that case I get a 404 page, but no errors.
------------------------------------------------------------------------
[2019-09-12 18:17:51] nicolas dot grekas+php at gmail dot com
built: Sep 11 2019 23:45:59 doesn't work yet for me:
This is gone: Error Internal error: wrong size calculation
php -S starts, but I still have Class 'ComposerAutoloaderInit...' not found when I access
http://localhost:8000 afterwards.
When I call get_declared_classes(), the class is not listed.
But when I call opcache_get_status(), I see the class listed in preload_statistics.
Basically, the original issue description still applies to me sorry...
------------------------------------------------------------------------
[2019-09-11 07:57:59] nikic@php.net
After https://github.com/php/php-src/commit/0a24cd4e7c38d7565905152d4286ef0404d9d591
I get:
Warning: Can't preload already declared class
Symfony\Bundle\FrameworkBundle\DependencyInjection\CompatibilityServiceSubscriberInterface in
/home/nikic/repos/preload-test/vendor/symfony/framework-bundle/DependencyInjection/CompatibilityServiceSubscriberInterface.php
on line 28
Warning: Can't preload already declared class
Symfony\Contracts\EventDispatcher\EventDispatcherInterface in
/home/nikic/repos/preload-test/vendor/symfony/event-dispatcher-contracts/EventDispatcherInterface.php
on line 20
Warning: Can't preload unlinked class Symfony\Component\DependencyInjection\ExpressionLanguage:
Unknown parent Symfony\Component\ExpressionLanguage\ExpressionLanguage in
/home/nikic/repos/preload-test/vendor/symfony/dependency-injection/ExpressionLanguage.php on line 28
But otherwise it works.
Do you see any further issues?
------------------------------------------------------------------------
[2019-09-10 16:48:54] nikic@php.net
I had to use -d opcache.preload=var/cache/dev/srcApp_KernelDevDebugContainer.preload.php.
php: /home/nikic/php-7.4/ext/opcache/ZendAccelerator.c:4293: accel_preload: Assertion
`zend_gc_refcount(&(ht)->gc) == 1' failed.
------------------------------------------------------------------------
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=78512
--
Edit this bug report at https://bugs.php.net/bug.php?id=78512&edit=1