Bug #79040 [Opn]: Warning Opcode handlers are unusable due to ASLR (fall-back to file cache)
| From: | cmb@php.net | Date: | Fri, 27 Dec 2019 22:24:35 +0000 |
| Subject: | Bug #79040 [Opn]: Warning Opcode handlers are unusable due to ASLR (fall-back to file cache) | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-224570@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=79040&edit=1
ID: 79040
Updated by: cmb@php.net
Reported by: ASchmidt at Anamera dot net
Summary: Warning Opcode handlers are unusable due to ASLR
(fall-back to file cache)
Status: Open
Type: Bug
Package: opcache
Operating System: Win x64 IIS
PHP Version: 7.3.13
Block user comment: N
Private report: N
New Comment:
Well, the file cache fallback due to ASLR *can* happen without
that fix (I've rarely, if ever, seen it on x64, though, but
several times on x86). Otherwise we would not recommend to enable
file_cache_fallback. And while that "fix" (actually, it's more a
mitigation) increases the likelyhood of the fallback happening, it
it supposed to prevent worse issues.
So, did you experience segfaults or strange application behavior
occassionally before the update to 7.3.13? And would it help to
reboot the machine, or running fewer instances of php-cgi.exe?
And if you can reproduce that fallback occuring somewhat reliably,
how many php-cgi.exe instances would be affected? At least one
(but possibly several) may use the shared memory cache, and only
some may fall back to the file cache. Also please look for the
file whose name starts with ZendOPcache.MemoryBase (and is
followed by two MD5 hashes separated by @ signs) in %TEMP%; there
may be several, since each OPcache instance creates such a file.
The first line of the file contains the base address of the shared
memory, the second line (only there as of PHP 7.3.13) the address
of the execute_ex() function. Could be interesting to compare the
values of more or less successful OPcache caching after server
restarts (and maybe reboots).
Previous Comments:
------------------------------------------------------------------------
[2019-12-27 21:42:29] requinix@php.net
Ah. What you're seeing is the result of a fix for 7.4.0 that was backported to 7.3.13:
https://www.php.net/ChangeLog-7.php#7.3.13
> Fixed potential ASLR related invalid opline handler issues
------------------------------------------------------------------------
[2019-12-27 21:29:19] ASchmidt at Anamera dot net
I don't understand - there was NO problem with 7.3.12 and prior versions - no warning, and the
OpCache GUI never complained about memory stats not existing etc.?
------------------------------------------------------------------------
[2019-12-27 21:24:45] requinix@php.net
Right.
What are you asking for here? To disable the warning on Windows because it'll never work
anyways? Unless ASLR is disabled, but people shouldn't do that.
------------------------------------------------------------------------
[2019-12-27 20:53:17] ASchmidt at Anamera dot net
>> And what if you set file_cache_only=1? <<
As expected, if memory caching is disabled from the onset, then there are no error messages about it
being disabled dynamically due to ASLR !?
------------------------------------------------------------------------
[2019-12-27 19:54:12] requinix@php.net
And what if you set file_cache_only=1?
------------------------------------------------------------------------
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=79040
--
Edit this bug report at https://bugs.php.net/bug.php?id=79040&edit=1