Doc #80015 [Ver]: opcache.jit setting not documented
| From: | buschmann at nidsa dot net | Date: | Tue, 25 Aug 2020 11:55:18 +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-17812@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
User updated by: buschmann at nidsa dot 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:
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
Previous Comments:
------------------------------------------------------------------------
[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]
0000000
00000001 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