[php-src] Issue #11736: JIT cause 100% cpu usage

From: Date: Tue, 18 Jul 2023 05:19:08 +0000
Subject: [php-src] Issue #11736: JIT cause 100% cpu usage
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-244991@lists.php.net to get a copy of this message
Issue: https://github.com/php/php-src/issues/11736 Author: andrii29 ### Description The following code: ```php [opcache] opcache.enable=1 opcache.enable_cli=1 opcache.memory_consumption=512 opcache.jit_buffer_size=256M opcache.interned_strings_buffer=16 opcache.max_accelerated_files=200000 opcache.max_wasted_percentage=5 opcache.use_cwd=1 opcache.validate_timestamps=0 opcache.revalidate_freq=600 opcache.revalidate_path=0 opcache.save_comments=1 opcache.enable_file_override=0 opcache.optimization_level=0x7FFFBFFF opcache.dups_fix=0 opcache.max_file_size=0 opcache.consistency_checks=0 opcache.force_restart_timeout=180 opcache.file_cache_only=0 opcache.file_cache_consistency_checks=1 opcache.huge_code_pages=1 opcache.preload=/path/to/config/preload.php opcache.preload_user=user ``` Resulted in this output: ``` [18-Jul-2023 03:40:09] NOTICE: [pool www] child 179 started Fatal error: Maximum execution time of 99+2 seconds exceeded (terminated) in /path/to/file.php on line 33 [18-Jul-2023 03:40:13] WARNING: [pool www] child 47 exited with code 124 after 381.082060 seconds from start [18-Jul-2023 03:40:13] NOTICE: [pool www] child 182 started Fatal error: Maximum execution time of 99+2 seconds exceeded (terminated) in /path/to/file.php on line 33 [18-Jul-2023 03:40:25] WARNING: [pool www] child 42 exited with code 124 after 393.292804 seconds from start ``` But I expected this output instead: ``` no errors in log ``` Hello, after enabling JIT, our application start perform better (~10% faster). But, some php-fpm pods (~1 in 20) after start use all available cpu and timeout the requests. After pod restart, everything back to normal. Without JIT everything is ok and cpu utilization is at normal value. Regards ``` opcache.blacklist_filename => no value => no value opcache.consistency_checks => 0 => 0 opcache.dups_fix => Off => Off opcache.enable => On => On opcache.enable_cli => On => On 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 => On => On 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 => 256M => 256M 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 => 200000 => 200000 opcache.max_file_size => 0 => 0 opcache.max_wasted_percentage => 5 => 5 opcache.memory_consumption => 512 => 512 opcache.opt_debug_level => 0 => 0 opcache.optimization_level => 0x7FFFBFFF => 0x7FFFBFFF opcache.preferred_memory_model => no value => no value opcache.preload => /path/to/config/preload.php => //path/to/config/preload.php opcache.preload_user => user => user opcache.protect_memory => Off => Off opcache.record_warnings => Off => Off opcache.restrict_api => no value => no value opcache.revalidate_freq => 600 => 600 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 => Off => Off ``` ### PHP Version PHP 8.1.20 ### Operating System Debian GNU/Linux 10 (buster) docker container on Amazon Linux 2

« previous php.bugs (#244991) next »