Skip to content

Commit

Permalink
Fix bug #78291 Missing opcache directives
Browse files Browse the repository at this point in the history
New opcache directives have been added recently which are returned
if using `ini_get_all('zend opcache')` but are not listed in the
directives if using `opcache_get_configuration()`.  This fix adds
those missing directives as well as if `opcache.mmap_base` is used
instead of `opcache.lockfile_path`.  Also adds a test to ensure the
directives match with both methods of fetching.
  • Loading branch information
amnuts authored and nikic committed Jul 15, 2019
1 parent a7de2af commit 768ad70
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 7 deletions.
18 changes: 11 additions & 7 deletions NEWS
Expand Up @@ -7,18 +7,18 @@ PHP NEWS
(Joshua Westerheide)

- PDO_Sqlite:
. Fixed #78192 (SegFault when reuse statement after schema has changed).
. Fixed bug #78192 (SegFault when reuse statement after schema has changed).
(Vincent Quatrevieux)

- SQLite:
. Upgraded to SQLite 3.28.0. (cmb)

- XMLRPC:
. Fixed #78173 (XML-RPC mutates immutable objects during encoding). (Asher
Baker)
. Fixed bug #78173 (XML-RPC mutates immutable objects during encoding).
(Asher Baker)

- Date:
. Fixed #69044 (discrepency between time and microtime). (krakjoe)
. Fixed bug #69044 (discrepency between time and microtime). (krakjoe)

- Libxml:
. Fixed bug #78279 (libxml_disable_entity_loader settings is shared between
Expand All @@ -36,11 +36,15 @@ PHP NEWS
socket-to-stream). (Nikita)

- OPcache:
. Fixed #78189 (file cache strips last character of uname hash). (cmb)
. Fixed #78202 (Opcache stats for cache hits are capped at 32bit NUM). (cmb)
. Fixed bug #78189 (file cache strips last character of uname hash). (cmb)
. Fixed bug #78202 (Opcache stats for cache hits are capped at 32bit NUM).
(cmb)
. Fixed bug #78291 (opcache_get_configuration doesn't list all directives).
(Andrew Collington)

- Standard:
. Fixed #78241 (touch() does not handle dates after 2038 in PHP 64-bit). (cmb)
. Fixed bug #78241 (touch() does not handle dates after 2038 in PHP 64-bit).
(cmb)

27 Jun 2019, PHP 7.2.20

Expand Down
17 changes: 17 additions & 0 deletions ext/opcache/tests/get_configuration_matches_ini.phpt
@@ -0,0 +1,17 @@
--TEST--
Test that the directives listed with `opcache_get_configuration` include all those from the ini settings.
--INI--
opcache.enable=1
opcache.enable_cli=1
opcache.opt_debug_level=0
--SKIPIF--
<?php require_once('skipif.inc'); ?>
--FILE--
<?php
$opts = opcache_get_configuration()['directives'];
$inis = ini_get_all('zend opcache');
var_dump(array_diff_key($inis, $opts));
?>
--EXPECT--
array(0) {
}
12 changes: 12 additions & 0 deletions ext/opcache/zend_accelerator_module.c
Expand Up @@ -727,13 +727,25 @@ static ZEND_FUNCTION(opcache_get_configuration)

#ifndef ZEND_WIN32
add_assoc_string(&directives, "opcache.lockfile_path", STRING_NOT_NULL(ZCG(accel_directives).lockfile_path));
#else
add_assoc_string(&directives, "opcache.mmap_base", STRING_NOT_NULL(ZCG(accel_directives).mmap_base));
#endif

#ifdef HAVE_OPCACHE_FILE_CACHE
add_assoc_string(&directives, "opcache.file_cache", ZCG(accel_directives).file_cache ? ZCG(accel_directives).file_cache : "");
add_assoc_bool(&directives, "opcache.file_cache_only", ZCG(accel_directives).file_cache_only);
add_assoc_bool(&directives, "opcache.file_cache_consistency_checks", ZCG(accel_directives).file_cache_consistency_checks);
#endif
#if ENABLE_FILE_CACHE_FALLBACK
add_assoc_bool(&directives, "opcache.file_cache_fallback", ZCG(accel_directives).file_cache_fallback);
#endif

add_assoc_long(&directives, "opcache.file_update_protection", ZCG(accel_directives).file_update_protection);
add_assoc_long(&directives, "opcache.opt_debug_level", ZCG(accel_directives).opt_debug_level);
add_assoc_string(&directives, "opcache.restrict_api", STRING_NOT_NULL(ZCG(accel_directives).restrict_api));
#ifdef HAVE_HUGE_CODE_PAGES
add_assoc_bool(&directives, "opcache.huge_code_pages", ZCG(accel_directives).huge_code_pages);
#endif

add_assoc_zval(return_value, "directives", &directives);

Expand Down

0 comments on commit 768ad70

Please sign in to comment.