Doc #80015 [Ver]: opcache.jit setting not documented

From: Date: Tue, 25 Aug 2020 17:32:51 +0000
Subject: Doc #80015 [Ver]: opcache.jit setting not documented
References: 1  Groups: php.doc.bugs 
Request: Send a blank email to doc-bugs+get-17813@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=80015&edit=1 ID: 80015 Updated by: cmb@php.net Reported by: buschmann at nidsa dot net Summary: opcache.jit setting not documented Status: Verified Type: Documentation Problem Package: JIT Operating System: Windows 10 Pro 64bit PHP Version: 8.0.0beta2 Block user comment: N Private report: N New Comment: It's pretty strange that you get an error with opcache.jit=205; that does exactly what it should for me. The error message has apparently not been updated since the latest changes, though. Anyhow, it doesn't matter whether the INI value is enclosed in double-quotes or not. > Is there a beta version of the documentation containing the new > configuration flags, the incompatibilities and deprecations and > the new features? All relevant information is supposed to be contained in UPGRADING[1]; unfortunately, there is almost no info about the JIT. [1] <https://github.com/php/php-src/blob/php-8.0.0beta2/UPGRADING> Previous Comments: ------------------------------------------------------------------------ [2020-08-25 11:55:18] buschmann at nidsa dot net I tried the solution with opcache.jit=205 and got [24-Aug-2020 14:47:46 UTC] PHP Warning: Invalid "opcache.jit" setting. Should be "disable", "on", "off" or 4-digit number in Unknown on line 0 Setting it to opcache.jit=on (on non AVX machine) resulted in [Tue Aug 25 13:33:21.150470 2020] [mpm_winnt:notice] [pid 12728:tid 680] AH00428: Parent: child process 7524 exited with status 4294967295 -- Restarting. Setting it to opcache.jit="on" (on non AVX machine) resulted in [Tue Aug 25 13:37:13.241891 2020] [mpm_winnt:notice] [pid 10180:tid 688] AH00428: Parent: child process 5420 exited with status 3221225477 -- Restarting. Setting it to opcache.jit="off" disabled it and apps are running fine. IMHO it is really difficult to get our applications tested against PHP 8. We as users are asked to test our software in the prerelease phase from alpha1 to RC5. But we have no information how to configure the new features. Is there a beta version of the documentation containing the new configuration flags, the incompatibilities and deprecations and the new features? For me it is even not clear if I should specify the value of opcache.jit in doublequotes or not. The problem with not AVX-capable hardware still remains and is not transparent for the user. Please provide the beta documentation or integrate the new stuff in https://www.php.net/docs.php Thanks ------------------------------------------------------------------------ [2020-08-24 16:34:06] cmb@php.net s/actual/octal/ ------------------------------------------------------------------------ [2020-08-24 16:33:41] cmb@php.net Well, that's not quite right. The old numeric flags are still supported, but "0205" is interpreted as actual, and as such rejected. You could use "205" instead. ------------------------------------------------------------------------ [2020-08-24 16:29:36] cmb@php.net The meaning of opcache.jit is changed as of PHP 8.0.0beta1; now it basically accepts "function", "tracing" (the default) and "off". Since "0205" is no longer accepted, the default is used, and so the crash has the same root cause as bug #80014. I'm changing this to documentation problem, because the change of opcache.jit doesn't seem to be documented. ------------------------------------------------------------------------ [2020-08-24 15:05:58] buschmann at nidsa dot net Description: ------------ On my development machine I set the following configuration for JIT (no AVX available): opcache.jit_buffer_size=16M opcache.jit=0205 opcache-gui.php executes after apache start. When prewarming some scripts from one of our applications PHP crashes with access violation. One example line is: $bresult=opcache_compile_file('N:\Apache\tcpdf\tcpdf.php'); On the server machine (with avx, jit=1205) our application runs fine (prewarming etc.) The only solution on the dev machine was to disable JIT completely. With disabled JIT our applications ran fine. Environment: - Windows 10 64bit Pro on Celeron G1840 (no AVX) - Apache 2.46 64bit from apachelounge - php 8 beta2 64bit thread safe from php.net QA download - php loaded as a module with php_module Actual result: -------------- Crash dump follows: CrashHangAnalysis Report for httpd__PID__10696__Date__08_24_2020__Time_04_48_52PM__948__Second_Chance_Exception_C0000005.dmp Type of Analysis Performed Crash Analysis Machine Name WINHB16 Operating System Windows 10 - 18363 Number Of Processors 2 Process ID 10696 Process Image N:\Apache\Apache24\bin\httpd.exe Command Line httpd -X System Up-Time 9 day(s) 23:08:39 Process Up-Time 00:01:08 Processor Type X64 Process Bitness 64-Bit Faulting Thread Entry point libhttpd!ap_run_generate_log_id+3ab0 Create time 24.08.2020 16:47:46 Time spent in user mode 0 Days 0:0:0.0 Time spent in kernel mode 0 Days 0:0:0.0 Arg 1 Arg 2 Arg 3 Arg 4 Source php_opcache!zend_jit_trace_exit_is_hot+68 [C:\php-snap-build\php80\vs16\x64\php-8.0.0beta2-ts\ext\opcache\jit\zend_jit_trace.c @ 5458 + 4] 000000000000001 000022a00000006 00010000041fb98 00000c43c7fd068 C:\php-snap-build\php80\vs16\x64\php-8.0.0beta2-ts\ext\opcache\jit\zend_jit_trace.c @ 5458 + 4 php_opcache!zend_jit_trace_exit+a76 [C:\php-snap-build\php80\vs16\x64\php-8.0.0beta2-ts\ext\opcache\jit\zend_jit_trace.c @ 5827 + 47] 000100000000006 00000c43c7fd1b0 0000000000000a5 000022a8ba75300 C:\php-snap-build\php80\vs16\x64\php-8.0.0beta2-ts\ext\opcache\jit\zend_jit_trace.c @ 5827 + 47 0x0000100003000613 00000c43c7fd1b0 0000000000000a5 000022a8ba75300 0000000`00000003 0x0000100000000006 0000000000000a5 000022a8ba75300 000000000000003 000022a`8ba579bc 0x000000c43c7fd1b0 000022a8ba75300 000000000000003 000022a8ba579bc 0000dd5`746e0848 0x000000a5 000000000000003 000022a8ba579bc 0000dd5746e0848 00010000300083d 0x0000022a8ba75300 000022a8ba579bc 0000dd5746e0848 00010000300083d 000022a`8ba15370 0x00000003 0000dd5746e0848 00010000300083d 000022a8ba15370 000022a8ba15370 0x0000022a8ba579bc 00010000300083d 000022a8ba15370 000022a8ba15370 000022a`8ba15370 0x00000dd5746e0848 000022a8ba15370 000022a8ba15370 000022a8ba15370 000022a`8a983120 0x000010000300083d 000022a8ba15370 000022a8ba15370 000022a8a983120 0000000`00000000 0x0000022a8ba15370 000022a8ba15370 000022a8a983120 000000000000000 000022a`8ba15300 0x0000022a8ba15370 000022a8a983120 000000000000000 000022a8ba15300 000022a`8b2092e0 0x0000022a8ba15370 000000000000000 000022a8ba15300 000022a8b2092e0 0000000`00000246 0x0000022a8a983120 000022a8ba15300 000022a8b2092e0 000000000000246 0000000`00000008 CLR Information Exception Information PHP_OPCACHE!ZEND_JIT_TRACE_EXIT_IS_HOT+68In httpd__PID__10696__Date__08_24_2020__Time_04_48_52PM__948__Second_Chance_Exception_C0000005.dmp the assembly instruction at php_opcache!zend_jit_trace_exit_is_hot+68 in N:\Apache\php8\ext\php_opcache.dll from The PHP Group has caused an access violation exception (0xC0000005) when trying to read from memory location 0x00000006 on thread 99 Module Information Image Name: N:\Apache\php8\ext\php_opcache.dll Symbol Type: PDB Base address: 0x00000003`00905a4d Time Stamp: Wed Aug 19 00:50:02 2020 Checksum: 0x00000000`00000000 Comments: Thanks to Andi Gutmans, Zeev Suraski, Stanislav Malyshev, Dmitry Stogov, Xinchen Hui COM DLL: False Company Name: The PHP Group ISAPIExtension: False File Description: Opcache ISAPIFilter: False File Version: 8.0.0beta2 Managed DLL: False Internal Name: OPCACHE extension VB DLL: False Legal Copyright: Copyright © The PHP Group Loaded Image Name: php_opcache.dll Legal Trademarks: PHP Mapped Image Name: Original filename: php_opcache.dll Module name: php_opcache Private Build: Single Threaded: False Product Name: PHP Module Size: 1,5 MBytes Product Version: 8.0.0beta2 Symbol File Name: n:\apache\php8_debug_b1\php_opcache.pdb Special Build: & ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=80015&edit=1

« previous php.doc.bugs (#17813) next »