Closed
Description
Description
The problem is quite difficult to reproduce.
Need to change php files when running specific application in php-fpm.
Steps to reproduce:
- Turn on JIT, Opcache
opcache.jit_buffer_size=100M
opcache.jit=1255
- Extract
bugphp.zip - Use
ab
to executerun.php
frombugphp.zip
:
ab -n 5000 -c 20 http://localhost/run.php
Application touches UniqueList.php
to make it modified for the OPcache.
Segmentation faults:
[29-Apr-2022 15:07:30] NOTICE: ready to handle connections
[29-Apr-2022 15:07:33] WARNING: [pool www] child 338824 exited on signal 11 (SIGSEGV - core dumped) after 2.980459 seconds from start
[29-Apr-2022 15:07:33] NOTICE: [pool www] child 338841 started
[29-Apr-2022 15:07:33] WARNING: [pool www] child 338827 exited on signal 11 (SIGSEGV - core dumped) after 2.980157 seconds from start
[29-Apr-2022 15:07:33] NOTICE: [pool www] child 338842 started
[29-Apr-2022 15:07:33] WARNING: [pool www] child 338826 exited on signal 11 (SIGSEGV - core dumped) after 2.999109 seconds from start
Backtrace:
#0 0x00000000008a47d1 in ZEND_FETCH_CLASS_CONSTANT_SPEC_UNUSED_CONST_HANDLER ()
at /home/Oleg.Stepanischev/php-src/Zend/zend_vm_execute.h:33346
#1 0x00000000008cdcd3 in execute_ex (ex=0x7fb8c7c14020) at /home/Oleg.Stepanischev/php-src/Zend/zend_vm_execute.h:58689
#2 0x00000000008cf41b in zend_execute (op_array=0x7fb8c7c67000, return_value=0x0)
at /home/Oleg.Stepanischev/php-src/Zend/zend_vm_execute.h:60123
#3 0x00000000008231b3 in zend_execute_scripts (type=8, retval=0x0, file_count=3)
at /home/Oleg.Stepanischev/php-src/Zend/zend.c:1792
#4 0x000000000078bbd4 in php_execute_script (primary_file=0x7ffdc50da360) at /home/Oleg.Stepanischev/php-src/main/main.c:2538
#5 0x00000000009901d9 in main (argc=2, argv=0x7ffdc50da578) at /home/Oleg.Stepanischev/php-src/sapi/fpm/fpm/fpm_main.c:1914
Bisect found the commit that contains the problem: 4b79dba
Disabling inheritance cache solves the problem.
The UniqueList
class has a child class UniqueListLast
that uses some of the parent class's constants. And the modification of the parent class somehow leads to the problem.
Possible related to #7817
PHP Version
PHP 8.1
Operating System
AlmaLinux release 8.5 (Arctic Sphynx)