[php-src] Issue #7749: Segfault when recursive call is made

From: Date: Fri, 10 Dec 2021 15:48:24 +0000
Subject: [php-src] Issue #7749: Segfault when recursive call is made
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-238316@lists.php.net to get a copy of this message
Issue: https://github.com/php/php-src/issues/7749 Author: hktr92 ### Description While working on a Symfony project, I made a small mistake in the code's design which lead to segfaults when running the testing suite. After debugging, I managed to narrow the issue, which was awkward. I know this kind of code shouldn't happen, but it's a simple and clear example of mistake that a newcomer might do in php. Just because it "shouldn't" doesn't mean it "doesn't". Additional context: - scripts were executed from CLI, where the execution time is unlimited - usually, one would get a fatal error because of memory allocation exhaustion. - our CLI config has a memory_limit of 128M.. it's weird why we don't get memory allocation exhaustion - defined classes are in fact Doctrine entities - doctrine / phpunit doesn't have any impact. running the bare minimum code should do it. - executing the code in 3v4l does NOT trigger segfault. The following code (in a Symfony 5.4 app): ```php <?php error_reporting(E_ALL); ini_set('display_errors', 'on'); class Product { public function __construct( private array $groups = [], ) { } public function addGroup(Group $group): void { $group->addProduct($this); $this->groups[] = $group; } } class Group { public function __construct( private array $products = [], ) { } public function addProduct(Product $product): void { $product->addGroup($this); $this->products[] = $product; } } $product = new Product(); $group = new Group(); $product->addGroup($group); ``` Resulted in this output: ``` > @php bin/phpunit --log-junit=reports/test-reports/phpunit-junit.xml PHPUnit 9.5.10 by Sebastian Bergmann and contributors. Testing ..Segmentation fault (core dumped) ``` or via php binary: ``` $ php test.php; echo $? 139 ``` (139 = exit code for segmentation fault) But I expected this output instead: ``` Fatal error: ...something suggestive about recursion... ``` <details> <summary>php -i output</summary> phpinfo() PHP Version => 8.0.13 System => Linux 4dbfa07182d9 5.15.6-200.fc35.x86_64 #1 SMP Wed Dec 1 13:41:10 UTC 2021 x86_64 Build Date => Dec 2 2021 13:36:12 Build System => Linux 2b51f0c4f4d4 4.19.0-14-cloud-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64 GNU/Linux Configure Command => './configure' '--build=x86_64-linux-gnu' '--with-config-file-path=/usr/local/etc/php' '--with-config-file-scan-dir=/usr/local/etc/php/conf.d' '--enable-option-checking=fatal' '--with-mhash' '--with-pic' '--enable-ftp' '--enable-mbstring' '--enable-mysqlnd' '--with-password-argon2' '--with-sodium=shared' '--with-pdo-sqlite=/usr' '--with-sqlite3=/usr' '--with-curl' '--with-openssl' '--with-readline' '--with-zlib' '--with-pear' '--with-libdir=lib/x86_64-linux-gnu' '--disable-cgi' '--enable-fpm' '--with-fpm-user=www-data' '--with-fpm-group=www-data' 'build_alias=x86_64-linux-gnu' Server API => Command Line Interface Virtual Directory Support => disabled Configuration File (php.ini) Path => /usr/local/etc/php Loaded Configuration File => /usr/local/etc/php/php.ini Scan this dir for additional .ini files => /usr/local/etc/php/conf.d Additional .ini files parsed => /usr/local/etc/php/conf.d/blackfire.ini, /usr/local/etc/php/conf.d/gd.ini, /usr/local/etc/php/conf.d/imagick.ini, /usr/local/etc/php/conf.d/intl.ini, /usr/local/etc/php/conf.d/opcache.ini, /usr/local/etc/php/conf.d/pdo_mysql.ini, /usr/local/etc/php/conf.d/sodium.ini, /usr/local/etc/php/conf.d/uuid.ini, /usr/local/etc/php/conf.d/xdebug.ini, /usr/local/etc/php/conf.d/zip.ini PHP API => 20200930 PHP Extension => 20200930 Zend Extension => 420200930 Zend Extension Build => API420200930,NTS PHP Extension Build => API20200930,NTS Debug Build => no Thread Safety => disabled Zend Signal Handling => enabled Zend Memory Manager => enabled Zend Multibyte Support => provided by mbstring IPv6 Support => enabled DTrace Support => disabled Registered PHP Streams => https, ftps, compress.zlib, php, file, glob, data, http, ftp, phar, zip Registered Stream Socket Transports => tcp, udp, unix, udg, ssl, tls, tlsv1.0, tlsv1.1, tlsv1.2, tlsv1.3 Registered Stream Filters => zlib.*, convert.iconv.*, string.rot13, string.toupper, string.tolower, convert.*, consumed, dechunk This program makes use of the Zend Scripting Language Engine: Zend Engine v4.0.13, Copyright (c) Zend Technologies with Zend OPcache v8.0.13, Copyright (c), by Zend Technologies with blackfire v1.71.0~linux-x64-non_zts80, https://blackfire.io, by Blackfire _______________________________________________________________________ Configuration blackfire Blackfire => enabled Blackfire => 1.71.0~linux-x64-non_zts80 Timing measurement => cgt Sessions support => enabled Num of CPU => 12 Profiling heap memory => 0 Kb Main instance trigger mode => CLI autotriggered Main instance => disabled Blackfire runtime active environment BLACKFIRE_AGENT_SOCKET => tcp://blackfire:8707 BLACKFIRE_LOG_LEVEL => 1 Blackfire runtime headers No headers detected Directive => Local Value => Master Value blackfire.agent_socket => tcp://blackfire:8707 => unix:///var/run/blackfire/agent.sock blackfire.apm_browser_key => no value => no value blackfire.apm_connect_at_startup => 0 => 0 blackfire.apm_enable_automatic_browser_probe => 1 => 1 blackfire.apm_enabled => 1 => 1 blackfire.apm_lock_duration => 300 => 300 blackfire.disable_features => no value => no value blackfire.env_id => no value => no value blackfire.env_token => no value => no value blackfire.hostname => no value => no value blackfire.log_file => no value => no value blackfire.log_level => 1 => 1 blackfire.server_id => no value => no value blackfire.server_token => no value => no value Blackfire developed by Blackfire INI settings 'blackfire.server_id' and 'blackfire.server_token' should not be configured manually unless you are using a cloud provider with a shared agent Core PHP Version => 8.0.13 Directive => Local Value => Master Value allow_url_fopen => On => On allow_url_include => Off => Off arg_separator.input => & => & arg_separator.output => & => & auto_append_file => no value => no value auto_globals_jit => On => On auto_prepend_file => no value => no value browscap => no value => no value default_charset => UTF-8 => UTF-8 default_mimetype => text/html => text/html disable_classes => no value => no value disable_functions => no value => no value display_errors => Off => Off display_startup_errors => Off => Off doc_root => no value => no value docref_ext => no value => no value docref_root => no value => no value enable_dl => Off => Off enable_post_data_reading => On => On error_append_string => no value => no value error_log => /proc/1/fd/2 => /proc/1/fd/2 error_prepend_string => no value => no value error_reporting => 32767 => 32767 expose_php => Off => Off extension_dir => /usr/local/lib/php/extensions/no-debug-non-zts-20200930 => /usr/local/lib/php/extensions/no-debug-non-zts-20200930 file_uploads => On => On hard_timeout => 2 => 2 highlight.comment => <font style="color: #FF8000">#FF8000</font> => <font style="color: #FF8000">#FF8000</font> highlight.default => <font style="color: #0000BB">#0000BB</font> => <font style="color: #0000BB">#0000BB</font> highlight.html => <font style="color: #000000">#000000</font> => <font style="color: #000000">#000000</font> highlight.keyword => <font style="color: #007700">#007700</font> => <font style="color: #007700">#007700</font> highlight.string => <font style="color: #DD0000">#DD0000</font> => <font style="color: #DD0000">#DD0000</font> html_errors => Off => Off ignore_repeated_errors => Off => Off ignore_repeated_source => Off => Off ignore_user_abort => Off => Off implicit_flush => On => On include_path => .:/usr/local/lib/php => .:/usr/local/lib/php input_encoding => no value => no value internal_encoding => no value => no value log_errors => On => On log_errors_max_len => 0 => 0 mail.add_x_header => Off => Off mail.force_extra_parameters => no value => no value mail.log => no value => no value max_execution_time => 0 => 0 max_file_uploads => 20 => 20 max_input_nesting_level => 64 => 64 max_input_time => -1 => -1 max_input_vars => 1000 => 1000 memory_limit => 128M => 128M open_basedir => no value => no value output_buffering => 0 => 0 output_encoding => no value => no value output_handler => no value => no value post_max_size => 8M => 8M precision => 14 => 14 realpath_cache_size => 4096k => 4096k realpath_cache_ttl => 120 => 120 register_argc_argv => On => On report_memleaks => On => On report_zend_debug => Off => Off request_order => GP => GP sendmail_from => no value => no value sendmail_path => /usr/sbin/sendmail -t -i => /usr/sbin/sendmail -t -i serialize_precision => -1 => -1 short_open_tag => Off => Off SMTP => localhost => localhost smtp_port => 25 => 25 sys_temp_dir => no value => no value syslog.facility => LOG_USER => LOG_USER syslog.filter => no-ctrl => no-ctrl syslog.ident => php => php unserialize_callback_func => no value => no value upload_max_filesize => 2M => 2M upload_tmp_dir => no value => no value user_dir => no value => no value user_ini.cache_ttl => 300 => 300 user_ini.filename => .user.ini => .user.ini variables_order => GPCS => GPCS xmlrpc_error_number => 0 => 0 xmlrpc_errors => Off => Off zend.assertions => -1 => -1 zend.detect_unicode => On => On zend.enable_gc => On => On zend.exception_ignore_args => On => On zend.exception_string_param_max_len => 0 => 0 zend.multibyte => Off => Off zend.script_encoding => no value => no value zend.signal_check => Off => Off ctype ctype functions => enabled curl cURL support => enabled cURL Information => 7.74.0 Age => 7 Features AsynchDNS => Yes CharConv => No Debug => No GSS-Negotiate => No IDN => Yes IPv6 => Yes krb4 => No Largefile => Yes libz => Yes NTLM => Yes NTLMWB => Yes SPNEGO => Yes SSL => Yes SSPI => No TLS-SRP => Yes HTTP2 => Yes GSSAPI => Yes KERBEROS5 => Yes UNIX_SOCKETS => Yes PSL => Yes HTTPS_PROXY => Yes MULTI_SSL => No BROTLI => Yes Protocols => dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, ldaps, mqtt, pop3, pop3s, rtmp, rtsp, scp, sftp, smb, smbs, smtp, smtps, telnet, tftp Host => x86_64-pc-linux-gnu SSL Version => OpenSSL/1.1.1k ZLib Version => 1.2.11 libSSH Version => libssh2/1.9.0 Directive => Local Value => Master Value curl.cainfo => no value => no value date date/time support => enabled timelib version => 2020.03 "Olson" Timezone Database Version => 2021.3 Timezone Database => internal Default timezone => Europe/Bucharest Directive => Local Value => Master Value date.default_latitude => 31.7667 => 31.7667 date.default_longitude => 35.2333 => 35.2333 date.sunrise_zenith => 90.833333 => 90.833333 date.sunset_zenith => 90.833333 => 90.833333 date.timezone => Europe/Bucharest => Europe/Bucharest dom DOM/XML => enabled DOM/XML API Version => 20031129 libxml Version => 2.9.10 HTML Support => enabled XPath Support => enabled XPointer Support => enabled Schema Support => enabled RelaxNG Support => enabled fileinfo fileinfo support => enabled libmagic => 539 filter Input Validation and Filtering => enabled Directive => Local Value => Master Value filter.default => unsafe_raw => unsafe_raw filter.default_flags => no value => no value ftp FTP support => enabled FTPS support => enabled gd GD Support => enabled GD Version => bundled (2.1.0 compatible) FreeType Support => enabled FreeType Linkage => with freetype FreeType Version => 2.10.4 GIF Read Support => enabled GIF Create Support => enabled JPEG Support => enabled libJPEG Version => 6b PNG Support => enabled libPNG Version => 1.6.37 WBMP Support => enabled XPM Support => enabled libXpm Version => 30411 XBM Support => enabled WebP Support => enabled BMP Support => enabled TGA Read Support => enabled Directive => Local Value => Master Value gd.jpeg_ignore_warning => 1 => 1 hash hash support => enabled Hashing Engines => md2 md4 md5 sha1 sha224 sha256 sha384 sha512/224 sha512/256 sha512 sha3-224 sha3-256 sha3-384 sha3-512 ripemd128 ripemd160 ripemd256 ripemd320 whirlpool tiger128,3 tiger160,3 tiger192,3 tiger128,4 tiger160,4 tiger192,4 snefru snefru256 gost gost-crypto adler32 crc32 crc32b crc32c fnv132 fnv1a32 fnv164 fnv1a64 joaat haval128,3 haval160,3 haval192,3 haval224,3 haval256,3 haval128,4 haval160,4 haval192,4 haval224,4 haval256,4 haval128,5 haval160,5 haval192,5 haval224,5 haval256,5 MHASH support => Enabled MHASH API Version => Emulated Support iconv iconv support => enabled iconv implementation => glibc iconv library version => 2.31 Directive => Local Value => Master Value iconv.input_encoding => no value => no value iconv.internal_encoding => no value => no value iconv.output_encoding => no value => no value imagick imagick module => enabled imagick module version => 3.6.0 imagick classes => Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel Imagick compiled with ImageMagick version => ImageMagick 6.9.11-60 Q16 x86_64 2021-01-25 https://imagemagick.org Imagick using ImageMagick library version => ImageMagick 6.9.11-60 Q16 x86_64 2021-01-25 https://imagemagick.org ImageMagick copyright => (C) 1999-2021 ImageMagick Studio LLC ImageMagick release date => 2021-01-25 ImageMagick number of supported formats: => 247 ImageMagick supported formats => 3FR, 3G2, 3GP, AAI, AI, APNG, ART, ARW, AVI, AVIF, AVS, BGR, BGRA, BGRO, BIE, BMP, BMP2, BMP3, BRF, CAL, CALS, CANVAS, CAPTION, CIN, CIP, CLIP, CMYK, CMYKA, CR2, CR3, CRW, CUR, CUT, DATA, DCM, DCR, DCX, DDS, DFONT, DJVU, DNG, DOT, DPX, DXT1, DXT5, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EPT2, EPT3, ERF, EXR, FAX, FILE, FITS, FRACTAL, FTP, FTS, G3, G4, GIF, GIF87, GRADIENT, GRAY, GRAYA, GROUP4, GV, H, HALD, HDR, HEIC, HISTOGRAM, HRZ, HTM, HTML, HTTP, HTTPS, ICB, ICO, ICON, IIQ, INFO, INLINE, IPL, ISOBRL, ISOBRL6, J2C, J2K, JBG, JBIG, JNG, JNX, JP2, JPC, JPE, JPEG, JPG, JPM, JPS, JPT, JSON, K25, KDC, LABEL, M2V, M4V, MAC, MAGICK, MAP, MASK, MAT, MATTE, MEF, MIFF, MKV, MNG, MONO, MOV, MP4, MPC, MPG, MRW, MSL, MSVG, MTV, MVG, NEF, NRW, NULL, ORF, OTB, OTF, PAL, PALM, PAM, PANGO, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PDFA, PEF, PES, PFA, PFB, PFM, PGM, PGX, PICON, PICT, PIX, PJPEG, PLASMA, PNG, PNG00, PNG24, PNG32, PNG48, PNG64, PNG8, PNM, POCKETMOD, PPM, PREVIEW, PS, PS2, PS3, PSB, PSD, PTIF, PWP, RADIAL-GRADIENT, RAF, RAS, RAW, RGB, RGBA, RGBO, RGF, RLA, RLE, RMF, RW2, SCR, SCT, SFW, SGI, SHTML, SIX, SIXEL, SPARSE-COLOR, SR2, SRF, STEGANO, SUN, SVG, SVGZ, TEXT, TGA, THUMBNAIL, TIFF, TIFF64, TILE, TIM, TTC, TTF, TXT, UBRL, UBRL6, UIL, UYVY, VDA, VICAR, VID, VIDEO, VIFF, VIPS, VST, WBMP, WEBM, WEBP, WMF, WMV, WMZ, WPG, X, X3F, XBM, XC, XCF, XPM, XPS, XV, XWD, YCbCr, YCbCrA, YUV Directive => Local Value => Master Value imagick.allow_zero_dimension_images => 0 => 0 imagick.locale_fix => 0 => 0 imagick.progress_monitor => 0 => 0 imagick.set_single_thread => 1 => 1 imagick.shutdown_sleep_count => 10 => 10 imagick.skip_version_check => 0 => 0 intl Internationalization support => enabled ICU version => 67.1 ICU Data version => 67.1 ICU Unicode version => 13.0 Directive => Local Value => Master Value intl.default_locale => no value => no value intl.error_level => 0 => 0 intl.use_exceptions => Off => Off json json support => enabled libxml libXML support => active libXML Compiled Version => 2.9.10 libXML Loaded Version => 20910 libXML streams => enabled mbstring Multibyte Support => enabled Multibyte string engine => libmbfl HTTP input encoding translation => disabled libmbfl version => 1.3.2 mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1. Multibyte (japanese) regex support => enabled Multibyte regex (oniguruma) version => 6.9.6 Directive => Local Value => Master Value mbstring.detect_order => no value => no value mbstring.encoding_translation => Off => Off mbstring.http_input => no value => no value mbstring.http_output => no value => no value mbstring.http_output_conv_mimetypes => ^(text/|application/xhtml\+xml) => ^(text/|application/xhtml\+xml) mbstring.internal_encoding => no value => no value mbstring.language => neutral => neutral mbstring.regex_retry_limit => 1000000 => 1000000 mbstring.regex_stack_limit => 100000 => 100000 mbstring.strict_detection => Off => Off mbstring.substitute_character => no value => no value mysqlnd mysqlnd => enabled Version => mysqlnd 8.0.13 Compression => supported core SSL => supported extended SSL => supported Command buffer size => 4096 Read buffer size => 32768 Read timeout => 86400 Collecting statistics => Yes Collecting memory statistics => No Tracing => n/a Loaded plugins => mysqlnd,debug_trace,auth_plugin_mysql_native_password,auth_plugin_mysql_clear_password,auth_plugin_caching_sha2_password,auth_plugin_sha256_password API Extensions => pdo_mysql openssl OpenSSL support => enabled OpenSSL Library Version => OpenSSL 1.1.1k 25 Mar 2021 OpenSSL Header Version => OpenSSL 1.1.1k 25 Mar 2021 Openssl default config => /usr/lib/ssl/openssl.cnf Directive => Local Value => Master Value openssl.cafile => no value => no value openssl.capath => no value => no value pcre PCRE (Perl Compatible Regular Expressions) Support => enabled PCRE Library Version => 10.35 2020-05-09 PCRE Unicode Version => 13.0.0 PCRE JIT Support => enabled PCRE JIT Target => x86 64bit (little endian + unaligned) Directive => Local Value => Master Value pcre.backtrack_limit => 1000000 => 1000000 pcre.jit => 1 => 1 pcre.recursion_limit => 100000 => 100000 PDO PDO support => enabled PDO drivers => sqlite, mysql pdo_mysql PDO Driver for MySQL => enabled Client API version => mysqlnd 8.0.13 Directive => Local Value => Master Value pdo_mysql.default_socket => no value => no value pdo_sqlite PDO Driver for SQLite 3.x => enabled SQLite Library => 3.34.1 Phar Phar: PHP Archive support => enabled Phar API version => 1.1.1 Phar-based phar archives => enabled Tar-based phar archives => enabled ZIP-based phar archives => enabled gzip compression => enabled bzip2 compression => disabled (install ext/bz2) Native OpenSSL support => enabled Phar based on pear/PHP_Archive, original concept by Davey Shafik. Phar fully realized by Gregory Beaver and Marcus Boerger. Portions of tar implementation Copyright (c) 2003-2009 Tim Kientzle. Directive => Local Value => Master Value phar.cache_list => no value => no value phar.readonly => On => On phar.require_hash => On => On posix POSIX support => enabled readline Readline Support => enabled Readline library => 8.1 Directive => Local Value => Master Value cli.pager => no value => no value cli.prompt => \b \> => \b \> Reflection Reflection => enabled session Session Support => enabled Registered save handlers => files user Registered serializer handlers => php_serialize php php_binary Directive => Local Value => Master Value session.auto_start => Off => Off session.cache_expire => 180 => 180 session.cache_limiter => nocache => nocache session.cookie_domain => no value => no value session.cookie_httponly => no value => no value session.cookie_lifetime => 0 => 0 session.cookie_path => / => / session.cookie_samesite => no value => no value session.cookie_secure => 0 => 0 session.gc_divisor => 1000 => 1000 session.gc_maxlifetime => 1440 => 1440 session.gc_probability => 1 => 1 session.lazy_write => On => On session.name => PHPSESSID => PHPSESSID session.referer_check => no value => no value session.save_handler => files => files session.save_path => no value => no value session.serialize_handler => php => php session.sid_bits_per_character => 5 => 5 session.sid_length => 26 => 26 session.upload_progress.cleanup => On => On session.upload_progress.enabled => On => On session.upload_progress.freq => 1% => 1% session.upload_progress.min_freq => 1 => 1 session.upload_progress.name => PHP_SESSION_UPLOAD_PROGRESS => PHP_SESSION_UPLOAD_PROGRESS session.upload_progress.prefix => upload_progress_ => upload_progress_ session.use_cookies => 1 => 1 session.use_only_cookies => 1 => 1 session.use_strict_mode => 0 => 0 session.use_trans_sid => 0 => 0 SimpleXML SimpleXML support => enabled Schema support => enabled sodium sodium support => enabled libsodium headers version => 1.0.18 libsodium library version => 1.0.18 SPL SPL support => enabled Interfaces => OuterIterator, RecursiveIterator, SeekableIterator, SplObserver, SplSubject Classes => AppendIterator, ArrayIterator, ArrayObject, BadFunctionCallException, BadMethodCallException, CachingIterator, CallbackFilterIterator, DirectoryIterator, DomainException, EmptyIterator, FilesystemIterator, FilterIterator, GlobIterator, InfiniteIterator, InvalidArgumentException, IteratorIterator, LengthException, LimitIterator, LogicException, MultipleIterator, NoRewindIterator, OutOfBoundsException, OutOfRangeException, OverflowException, ParentIterator, RangeException, RecursiveArrayIterator, RecursiveCachingIterator, RecursiveCallbackFilterIterator, RecursiveDirectoryIterator, RecursiveFilterIterator, RecursiveIteratorIterator, RecursiveRegexIterator, RecursiveTreeIterator, RegexIterator, RuntimeException, SplDoublyLinkedList, SplFileInfo, SplFileObject, SplFixedArray, SplHeap, SplMinHeap, SplMaxHeap, SplObjectStorage, SplPriorityQueue, SplQueue, SplStack, SplTempFileObject, UnderflowException, UnexpectedValueException sqlite3 SQLite3 support => enabled SQLite Library => 3.34.1 Directive => Local Value => Master Value sqlite3.defensive => On => On sqlite3.extension_dir => no value => no value standard Dynamic Library Support => enabled Path to sendmail => /usr/sbin/sendmail -t -i Directive => Local Value => Master Value assert.active => On => On assert.bail => Off => Off assert.callback => no value => no value assert.exception => On => On assert.warning => On => On auto_detect_line_endings => Off => Off default_socket_timeout => 60 => 60 from => no value => no value session.trans_sid_hosts => no value => no value session.trans_sid_tags => a=href,area=href,frame=src,form= => a=href,area=href,frame=src,form= unserialize_max_depth => 4096 => 4096 url_rewriter.hosts => no value => no value url_rewriter.tags => form= => form= user_agent => no value => no value tokenizer Tokenizer Support => enabled uuid UUID extension => enabled Version => 1.2.0 (stable) Released => 2020-10-06 Authors => Hartmut Holzgraefe, Remi Collet xml XML Support => active XML Namespace Support => active libxml2 Version => 2.9.10 xmlreader XMLReader => enabled xmlwriter XMLWriter => enabled Zend OPcache Opcode Caching => Disabled Optimization => Disabled SHM Cache => Enabled File Cache => Disabled JIT => On Startup Failed => Opcode Caching is disabled for CLI Directive => Local Value => Master Value opcache.blacklist_filename => no value => no value opcache.consistency_checks => 0 => 0 opcache.dups_fix => Off => Off opcache.enable => On => On opcache.enable_cli => Off => Off opcache.enable_file_override => Off => Off opcache.error_log => no value => no value opcache.file_cache => no value => no value opcache.file_cache_consistency_checks => On => On opcache.file_cache_only => Off => Off opcache.file_update_protection => 2 => 2 opcache.force_restart_timeout => 180 => 180 opcache.huge_code_pages => Off => Off opcache.interned_strings_buffer => 16 => 16 opcache.jit => tracing => tracing opcache.jit_bisect_limit => 0 => 0 opcache.jit_blacklist_root_trace => 16 => 16 opcache.jit_blacklist_side_trace => 8 => 8 opcache.jit_buffer_size => 0 => 0 opcache.jit_debug => 0 => 0 opcache.jit_hot_func => 127 => 127 opcache.jit_hot_loop => 64 => 64 opcache.jit_hot_return => 8 => 8 opcache.jit_hot_side_exit => 8 => 8 opcache.jit_max_exit_counters => 8192 => 8192 opcache.jit_max_loop_unrolls => 8 => 8 opcache.jit_max_polymorphic_calls => 2 => 2 opcache.jit_max_recursive_calls => 2 => 2 opcache.jit_max_recursive_returns => 2 => 2 opcache.jit_max_root_traces => 1024 => 1024 opcache.jit_max_side_traces => 128 => 128 opcache.jit_prof_threshold => 0.005 => 0.005 opcache.lockfile_path => /tmp => /tmp opcache.log_verbosity_level => 1 => 1 opcache.max_accelerated_files => 20000 => 20000 opcache.max_file_size => 0 => 0 opcache.max_wasted_percentage => 5 => 5 opcache.memory_consumption => 256 => 256 opcache.opt_debug_level => 0 => 0 opcache.optimization_level => 0x7FFEBFFF => 0x7FFEBFFF opcache.preferred_memory_model => no value => no value opcache.preload => no value => no value opcache.preload_user => no value => no value opcache.protect_memory => Off => Off opcache.record_warnings => Off => Off opcache.restrict_api => no value => no value opcache.revalidate_freq => 2 => 2 opcache.revalidate_path => Off => Off opcache.save_comments => On => On opcache.use_cwd => On => On opcache.validate_permission => Off => Off opcache.validate_root => Off => Off opcache.validate_timestamps => On => On zip Zip => enabled Zip version => 1.19.5 Libzip version => 1.7.3 BZIP2 compression => Yes XZ compression => No ZSTD compression => No AES-128 encryption => Yes AES-192 encryption => Yes AES-256 encryption => Yes zlib ZLib Support => enabled Stream Wrapper => compress.zlib:// Stream Filter => zlib.inflate, zlib.deflate Compiled Version => 1.2.11 Linked Version => 1.2.11 Directive => Local Value => Master Value zlib.output_compression => Off => Off zlib.output_compression_level => -1 => -1 zlib.output_handler => no value => no value Additional Modules Module Name Environment Variable => Value PATH => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOSTNAME => 4dbfa07182d9 TERM => xterm PHP_FPM_WORKERS => 5 XDEBUG_CLIENT_HOST => host.docker.internal BLACKFIRE_LOG_LEVEL => 1 BLACKFIRE_AGENT_SOCKET => tcp://blackfire:8707 BLACKFIRE_CLIENT_ID => BLACKFIRE_CLIENT_TOKEN => PHPIZE_DEPS => autoconf dpkg-dev file g++ gcc libc-dev make pkg-config re2c PHP_INI_DIR => /usr/local/etc/php PHP_CFLAGS => -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 PHP_CPPFLAGS => -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 PHP_LDFLAGS => -Wl,-O1 -pie GPG_KEYS => 1729F83938DA44E27BA0F4D3DBDB397470D12172 BFDDD28642824F8118EF77909B67A5C12229118F PHP_VERSION => 8.0.13 PHP_URL => https://www.php.net/distributions/php-8.0.13.tar.xz PHP_ASC_URL => https://www.php.net/distributions/php-8.0.13.tar.xz.asc PHP_SHA256 => cd976805ec2e9198417651027dfe16854ba2c2c388151ab9d4d268513d52ed52 PHP_SOCKET_TIMEOUT => 60 APP_VERSION => dev HOME => /var/www PHP Variables Variable => Value $_SERVER['PATH'] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin $_SERVER['HOSTNAME'] => 4dbfa07182d9 $_SERVER['TERM'] => xterm $_SERVER['PHP_FPM_WORKERS'] => 5 $_SERVER['XDEBUG_CLIENT_HOST'] => host.docker.internal $_SERVER['BLACKFIRE_LOG_LEVEL'] => 1 $_SERVER['BLACKFIRE_AGENT_SOCKET'] => tcp://blackfire:8707 $_SERVER['BLACKFIRE_CLIENT_ID'] => $_SERVER['BLACKFIRE_CLIENT_TOKEN'] => $_SERVER['PHPIZE_DEPS'] => autoconf dpkg-dev file g++ gcc libc-dev make pkg-config re2c $_SERVER['PHP_INI_DIR'] => /usr/local/etc/php $_SERVER['PHP_CFLAGS'] => -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $_SERVER['PHP_CPPFLAGS'] => -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $_SERVER['PHP_LDFLAGS'] => -Wl,-O1 -pie $_SERVER['GPG_KEYS'] => 1729F83938DA44E27BA0F4D3DBDB397470D12172 BFDDD28642824F8118EF77909B67A5C12229118F $_SERVER['PHP_VERSION'] => 8.0.13 $_SERVER['PHP_URL'] => https://www.php.net/distributions/php-8.0.13.tar.xz $_SERVER['PHP_ASC_URL'] => https://www.php.net/distributions/php-8.0.13.tar.xz.asc $_SERVER['PHP_SHA256'] => cd976805ec2e9198417651027dfe16854ba2c2c388151ab9d4d268513d52ed52 $_SERVER['PHP_SOCKET_TIMEOUT'] => 60 $_SERVER['APP_VERSION'] => dev $_SERVER['HOME'] => /var/www $_SERVER['PHP_SELF'] => $_SERVER['SCRIPT_NAME'] => $_SERVER['SCRIPT_FILENAME'] => $_SERVER['PATH_TRANSLATED'] => $_SERVER['DOCUMENT_ROOT'] => $_SERVER['REQUEST_TIME_FLOAT'] => 1639151277.635 $_SERVER['REQUEST_TIME'] => 1639151277 $_SERVER['argv'] => Array ( ) $_SERVER['argc'] => 0 PHP License This program is free software; you can redistribute it and/or modify it under the terms of the PHP License as published by the PHP Group and included in the distribution in the file: LICENSE This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. If you did not receive a copy of the PHP license, or have any questions about PHP licensing, please contact license@php.net. </details> ### PHP Version 8.0.13 ### Operating System Debian Bullseye (Docker container)

« previous php.bugs (#238316) next »