Bug #80175 [Fbk->Csd]: PHP8 RC1 - JIT Buffer not working

From: Date: Wed, 21 Oct 2020 09:12:34 +0000
Subject: Bug #80175 [Fbk->Csd]: PHP8 RC1 - JIT Buffer not working
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-229831@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=80175&edit=1 ID: 80175 Updated by: cmb@php.net Reported by: celestinoxp at hotmail dot com Summary: PHP8 RC1 - JIT Buffer not working -Status: Feedback +Status: Closed Type: Bug Package: JIT Operating System: Windows 10 PHP Version: 8.0.0rc2 Assigned To: cmb Block user comment: N Private report: N New Comment: Well, we need a backtrace to proceed with this, but I just noticed that the instruction to generate a backtrace on Windows[1] are terribly outdated. I have rewritten that section, and with this technique you should be able to get a backtrace even when Apache crashes right after start. That backtrace might not be sufficient for JIT issues, but please give it try. Anyhow, I checked once again with RC1 and RC2, and while the former crashes for me, the latter does not, so I'm closing this ticket, since the respective fix obviously addressed a bug. Please open a new ticket for your issue. Thanks. :) [1] <https://bugs.php.net/bugs-generating-backtrace-win32.php> Previous Comments: ------------------------------------------------------------------------ [2020-10-20 12:08:20] celestinoxp at hotmail dot com Hi, jit_buffer_size still not working. I changed php.ini configuration to this: opcache.enable=1 opcache.enable_cli=1 opcache.jit_buffer_size = 32M opcache.jit = 1205 all other lines are commented with ; so values are default. only when add ; in opcache.jit_buffer_size = 32M, php starts... I'm frustrated because I don't know where the error is ... and the php log is blank ... the apache log just says the following: [Wed Oct 21 13: 06: 57.709383 2020] [core: warn] [pid 624: tid 636] AH00098: pid file C: /xampp/apache/logs/httpd.pid overwritten - Unclean shutdown of previous Apache run? ------------------------------------------------------------------------ [2020-10-20 10:46:32] cmb@php.net celestinoxp, could you please try with a minimal php.ini first. Particularly, omit the following (i.e. leave those settings at their default): opcache.protect_memory = 0 opcache.optimization_level = -1 Would that solve the crash during startup? ------------------------------------------------------------------------ [2020-10-20 09:05:42] celestinoxp at hotmail dot com PHP8 RC2 - JIT Buffer still not working. Anyone can confirm? ------------------------------------------------------------------------ [2020-10-11 21:05:02] celestinoxp at hotmail dot com I forget say im using xampp, but i changed PHP-Module setup to work with php8, ex: LoadFile "C:/xampp/php/php8ts.dll" LoadFile "C:/xampp/php/libpq.dll" LoadModule php_module "C:/xampp/php/php8apache2_4.dll" LoadFile "C:/xampp/php/libsqlite3.dll" and replace all "php7_module" --> "php_module". And in php.ini [opcache] ; Determines if Zend OPCache is enabled opcache.enable=1 ; Determines if Zend OPCache is enabled for the CLI version of PHP opcache.enable_cli=1 ; The OPcache shared memory storage size. opcache.memory_consumption=128 ; The amount of memory for interned strings in Mbytes. opcache.interned_strings_buffer=8 ; The maximum number of keys (scripts) in the OPcache hash table. ; Only numbers between 200 and 1000000 are allowed. opcache.max_accelerated_files=50000 ; The maximum percentage of "wasted" memory until a restart is scheduled. ;opcache.max_wasted_percentage=5 ; When this directive is enabled, the OPcache appends the current working ; directory to the script key, thus eliminating possible collisions between ; files with the same name (basename). Disabling the directive improves ; performance, but may break existing applications. ;opcache.use_cwd=1 ; When disabled, you must reset the OPcache manually or restart the ; webserver for changes to the filesystem to take effect. ;opcache.validate_timestamps=1 ; How often (in seconds) to check file timestamps for changes to the shared ; memory storage allocation. ("1" means validate once per second, but only ; once per request. "0" means always validate) opcache.revalidate_freq=60 ; Enables or disables file search in include_path optimization ;opcache.revalidate_path=0 ; If disabled, all PHPDoc comments are dropped from the code to reduce the ; size of the optimized code. ;opcache.save_comments=1 ; Allow file existence override (file_exists, etc.) performance feature. ;opcache.enable_file_override=0 ; A bitmask, where each bit enables or disables the appropriate OPcache ; passes ;opcache.optimization_level = 0x7FFFBFFF opcache.optimization_level = -1 ;opcache.dups_fix=0 ; The location of the OPcache blacklist file (wildcards allowed). ; Each OPcache blacklist file is a text file that holds the names of files ; that should not be accelerated. The file format is to add each filename ; to a new line. The filename may be a full path or just a file prefix ; (i.e., /var/www/x blacklists all the files and directories in /var/www ; that start with 'x'). Line starting with a ; are ignored (comments). ;opcache.blacklist_filename= ; Allows exclusion of large files from being cached. By default all files ; are cached. ;opcache.max_file_size=0 ; Check the cache checksum each N requests. ; The default value of "0" means that the checks are disabled. ;opcache.consistency_checks=0 ; How long to wait (in seconds) for a scheduled restart to begin if the cache ; is not being accessed. ;opcache.force_restart_timeout=180 ; OPcache error_log file name. Empty string assumes "stderr". ;opcache.error_log= ; All OPcache errors go to the Web server log. ; By default, only fatal errors (level 0) or errors (level 1) are logged. ; You can also enable warnings (level 2), info messages (level 3) or ; debug messages (level 4). opcache.log_verbosity_level=2 ; Preferred Shared Memory back-end. Leave empty and let the system decide. ;opcache.preferred_memory_model= ; Protect the shared memory from unexpected writing during script execution. ; Useful for internal debugging only. opcache.protect_memory = 0 ; Allows calling OPcache API functions only from PHP scripts which path is ; started from specified string. The default "" means no restriction ;opcache.restrict_api= ; Mapping base of shared memory segments (for Windows only). All the PHP ; processes have to map shared memory into the same address space. This ; directive allows to manually fix the "Unable to reattach to base address" ; errors. ;opcache.mmap_base= ; Facilitates multiple OPcache instances per user (for Windows only). All PHP ; processes with the same cache ID and user share an OPcache instance. ;opcache.cache_id= ; Enables and sets the second level cache directory. ; It should improve performance when SHM memory is full, at server restart or ; SHM reset. The default "" disables file based caching. ;opcache.file_cache= ; Enables or disables opcode caching in shared memory. ;opcache.file_cache_only=0 ; Enables or disables checksum validation when script loaded from file cache. ;opcache.file_cache_consistency_checks=1 ; Implies opcache.file_cache_only=1 for a certain process that failed to ; reattach to the shared memory (for Windows only). Explicitly enabled file ; cache is required. ;opcache.file_cache_fallback=1 ; Enables or disables copying of PHP code (text segment) into HUGE PAGES. ; This should improve performance, but requires appropriate OS configuration. ;opcache.huge_code_pages=0 ; Validate cached file permissions. ;opcache.validate_permission=0 ; Prevent name collisions in chroot'ed environment. ;opcache.validate_root=0 ; If specified, it produces opcode dumps for debugging different stages of ; optimizations. ;opcache.opt_debug_level=0 ; Specifies a PHP script that is going to be compiled and executed at server ; start-up. ; http://php.net/opcache.preload ;opcache.preload= ; Preloading code as root is not allowed for security reasons. This directive ; facilitates to let the preloading to be run as another user. ; http://php.net/opcache.preload_user ;opcache.preload_user= ; Prevents caching files that are less than this number of seconds old. It ; protects from caching of incompletely updated files. In case all file updates ; on your site are atomic, you may increase performance by setting it to "0". ;opcache.file_update_protection=2 ; Absolute path used to store shared lockfiles (for *nix only). ;opcache.lockfile_path=/tmp opcache.jit=1205 ;opcache.jit_buffer_size=16M ------------------------------------------------------------------------ [2020-10-11 20:58:12] celestinoxp at hotmail dot com I can't generate backtrace report because php process not start. Can help me to generate backtrace to help you find problem in php? I have DebugDiag 2 update 3. But its i dont know work with it very fine... ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=80175 -- Edit this bug report at https://bugs.php.net/bug.php?id=80175&edit=1

« previous php.bugs (#229831) next »