Bug #80307 [Com]: Segfault in zend_execute when opcache preload enabled
| From: | php at shyim dot de | Date: | Mon, 02 Nov 2020 21:56:10 +0000 |
| Subject: | Bug #80307 [Com]: Segfault in zend_execute when opcache preload enabled | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-230067@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=80307&edit=1
ID: 80307
Comment by: php at shyim dot de
Reported by: php at shyim dot de
Summary: Segfault in zend_execute when opcache preload
enabled
Status: Open
Type: Bug
Package: opcache
Operating System: Ubuntu 20.04
PHP Version: 8.0.0RC3
Block user comment: N
Private report: N
New Comment:
I have debugged with die some time and got a very smaller repository.
Repository: https://github.com/shyim/php-bug-80307/tree/master
When I remove the logger assignment it works as expected here:
https://github.com/php-fig/log/blob/master/Psr/Log/LoggerAwareTrait.php#L24
Previous Comments:
------------------------------------------------------------------------
[2020-11-02 20:51:25] danack@php.net
Are you able to find a simple reproduce case?
If not, please could you try adding 'echo "got here"; exit(0);' first at the
top-level, and then moving it deeper into the app until you find the function that is causing the
problem?
kind of looks like a borked opcache optimization, so don't need a full repro case, if you can
identify a function that has the borked optimisation applied to it.
------------------------------------------------------------------------
[2020-11-02 20:32:45] php at shyim dot de
Description:
------------
Tried my Symfony 5.1 project on PHP 8.0RC3, working in 7.4. With enabled opcache preload a
segmentation fault happens on any request. See backtrace below
Test script:
---------------
Clone https://github.com/symfony/demo
Change .env APP_ENV to prod
composer install
./bin/console cache:clear
Add var/cache/prod/App_KernelProdContainer.preload.php to opcache.preload
Start web server
/opt/php-7.4/bin/php -S 0.0.0.0:7050 -t .
curl localhost:7050
=> Segmentation fault...
Expected result:
----------------
Its working like in 7.4
Actual result:
--------------
Program received signal SIGSEGV, Segmentation fault.
0x00005555557973ca in zend_verify_recv_arg_type (cache_slot=0x7ffff4011120, arg=0x7ffff4014c80,
arg_num=1, zf=0x4122f6f8) at /home/shyim/src/php-8.0.0RC3/Zend/zend_execute.c:1043
1043 cur_arg_info = &zf->common.arg_info[arg_num-1];
(gdb) bt
#0 0x00005555557973ca in zend_verify_recv_arg_type (cache_slot=0x7ffff4011120, arg=0x7ffff4014c80,
arg_num=1, zf=0x4122f6f8) at /home/shyim/src/php-8.0.0RC3/Zend/zend_execute.c:1043
#1 zend_verify_recv_arg_type_helper_SPEC (op_1=0x7ffff4014c80) at
/home/shyim/src/php-8.0.0RC3/Zend/zend_vm_execute.h:2450
#2 0x000055555579abb7 in ZEND_RECV_SPEC_UNUSED_HANDLER () at
/home/shyim/src/php-8.0.0RC3/Zend/zend_vm_execute.h:3629
#3 execute_ex (ex=0x7ffff4014c80) at /home/shyim/src/php-8.0.0RC3/Zend/zend_vm_execute.h:54626
#4 0x0000555555bac3c4 in zend_execute (op_array=0x7ffff4003000, return_value=0x0) at
/home/shyim/src/php-8.0.0RC3/Zend/zend_vm_execute.h:58789
#5 0x0000555555b43c23 in zend_execute_scripts (type=-201241552, type@entry=8,
retval=retval@entry=0x0, file_count=file_count@entry=3) at
/home/shyim/src/php-8.0.0RC3/Zend/zend.c:1680
#6 0x0000555555ae0712 in php_execute_script (primary_file=primary_file@entry=0x7fffffffcff0) at
/home/shyim/src/php-8.0.0RC3/main/main.c:2490
#7 0x0000555555bd8e42 in php_cli_server_dispatch_script (server=server@entry=0x555556b76000
<server>, client=client@entry=0x555556c3d530) at
/home/shyim/src/php-8.0.0RC3/sapi/cli/php_cli_server.c:2081
#8 0x0000555555bd93f3 in php_cli_server_dispatch (client=0x555556c3d530, server=0x555556b76000
<server>) at /home/shyim/src/php-8.0.0RC3/sapi/cli/php_cli_server.c:2253
#9 php_cli_server_recv_event_read_request (server=0x555556b76000 <server>,
client=0x555556c3d530) at /home/shyim/src/php-8.0.0RC3/sapi/cli/php_cli_server.c:2525
#10 0x0000555555bd9759 in php_cli_server_do_event_for_each_fd_callback
(_params=_params@entry=0x7fffffffd290, fd=fd@entry=5, event=event@entry=1) at
/home/shyim/src/php-8.0.0RC3/sapi/cli/php_cli_server.c:2611
#11 0x0000555555bda215 in php_cli_server_poller_iter_on_active (poller=0x555556b76008
<server+8>, callback=0x555555bd9700 <php_cli_server_do_event_for_each_fd_callback>,
opaque=0x7fffffffd290) at /home/shyim/src/php-8.0.0RC3/sapi/cli/php_cli_server.c:920
#12 php_cli_server_do_event_for_each_fd (whandler=0x555555bd8070 <php_cli_server_send_event>,
rhandler=0x555555bd8e50 <php_cli_server_recv_event_read_request>, server=0x555556b76000
<server>) at /home/shyim/src/php-8.0.0RC3/sapi/cli/php_cli_server.c:2629
#13 php_cli_server_do_event_loop (server=0x555556b76000 <server>) at
/home/shyim/src/php-8.0.0RC3/sapi/cli/php_cli_server.c:2639
#14 do_cli_server (argc=<optimized out>, argv=<optimized out>) at
/home/shyim/src/php-8.0.0RC3/sapi/cli/php_cli_server.c:2769
#15 0x00005555557a3a53 in main (argc=5, argv=0x555556bafe10) at
/home/shyim/src/php-8.0.0RC3/sapi/cli/php_cli.c:1339
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=80307&edit=1