Bug #80307 [Com]: Segfault in zend_execute when opcache preload enabled

From: 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

« previous php.bugs (#230067) next »