Bug #70022 [Opn->Fbk]: Crash with opcache using opcache.file_cache_only=1
| From: | ab@php.net | Date: | Wed, 08 Jul 2015 14:34:36 +0000 |
| Subject: | Bug #70022 [Opn->Fbk]: Crash with opcache using opcache.file_cache_only=1 | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-194216@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=70022&edit=1
ID: 70022
Updated by: ab@php.net
Reported by: suralc dot github at gmail dot com
Summary: Crash with opcache using opcache.file_cache_only=1
-Status: Open
+Status: Feedback
Type: Bug
Package: opcache
Operating System: Windows 10 Build 10162
PHP Version: 7.0Git-2015-07-08 (Git)
Block user comment: N
Private report: N
New Comment:
Thanks for the report. Could you please share the exact unit test reproducing this?
Thanks.
Previous Comments:
------------------------------------------------------------------------
[2015-07-08 13:53:45] suralc dot github at gmail dot com
Description:
------------
Note: I am aware that the file based opcache is experimental.
Compiled php (master@f9dc60f36f0c03) using visual studio 2015(RC) on the latest windows 10 build
(x64 host and built) using
configure --enable-debug --with-openssl --enable-opcache-file --without-gd
Opcache config:
opcache.enable=1
opcache.enable_cli=1
opcache.file_cache=e:\programme\dev\php7\tmp
opcache.file_cache_only=1
Setting file_cache_only to 0 prevents the crash.
Running phpunit executes the tests fine (and prints results) but crashes afterwards:
First guess is that p->key->gc.u.v which is accessed by the GC_FLAGS macro which is
"called" by the ZSTR_IS_INTERNED macro is already free when execution reaches
accel_reset_pcre_cache. (See the output below)
I was unable to reproduce the crash outside of that environment(phpunit) so far.
Actual result:
--------------
>? p->key->gc.u.v
{type=??? flags=??? gc_info=??? }
type: <Speicher kann nicht gelesen werden>
flags: <Speicher kann nicht gelesen werden>
gc_info: <Speicher kann nicht gelesen werden>
>? p->key->gc
{refcount=??? u={v={type=??? flags=??? gc_info=??? } type_info=??? } }
refcount: <Speicher kann nicht gelesen werden>
u: {v={type=??? flags=??? gc_info=??? } type_info=??? }
Ausnahmefehler bei 0x00007FFD06498C8E (php_opcache.dll) in php.exe: 0xC0000005: Zugriffsverletzung
beim Lesen [Access violation while reading] an Position 0x0000006DF1603925
> php_opcache.dll!accel_reset_pcre_cache() Zeile 1976 C
php_opcache.dll!accel_shutdown() Zeile 2676 C
php_opcache.dll!zm_shutdown_zend_accelerator(int type, int module_number) Zeile 420 C
php7ts_debug.dll!module_destructor(_zend_module_entry * module) Zeile 2513 C
php7ts_debug.dll!module_destructor_zval(_zval_struct * zv) Zeile 603 C
php7ts_debug.dll!_zend_hash_del_el_ex(_zend_array * ht, unsigned int idx, _Bucket * p, _Bucket *
prev) Zeile 936 C
php7ts_debug.dll!_zend_hash_del_el(_zend_array * ht, unsigned int idx, _Bucket * p) Zeile 960 C
php7ts_debug.dll!zend_hash_graceful_reverse_destroy(_zend_array * ht) Zeile 1406 C
php7ts_debug.dll!zend_destroy_modules() Zeile 1990 C
php7ts_debug.dll!zend_shutdown() Zeile 839 C
php7ts_debug.dll!php_module_shutdown() Zeile 2346 C
php.exe!main(int argc, char * * argv) Zeile 1355 C
[Externer Code]
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=70022&edit=1