Bug #75886 [Opn]: opcache-xdebug crash on script restart

From: Date: Wed, 07 Feb 2018 21:27:48 +0000
Subject: Bug #75886 [Opn]: opcache-xdebug crash on script restart
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-213853@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=75886&edit=1 ID: 75886 User updated by: john-stevenson at blueyonder dot co dot uk Reported by: john-stevenson at blueyonder dot co dot uk Summary: opcache-xdebug crash on script restart Status: Open Type: Bug Package: Reproducible crash Operating System: Windows 10 PHP Version: Irrelevant Block user comment: N Private report: N New Comment: This happens on *nix when opcache file-caching is being used. I have reported it here: https://bugs.php.net/bug.php?id=75932 Previous Comments: ------------------------------------------------------------------------ [2018-02-07 13:35:01] john-stevenson at blueyonder dot co dot uk This behavior can be more easily reproduced using opcache file-caching with a basic script: //test.php <?php echo "okay\n"; -------- Config: opcache and xdebug extensions enabled opcache.enable_cli=1 opcache.file_cache=/some/where opcache.file_cache_only=1 Run: php.exe test.php // Prints "okay" Config: As above, but disable xdebug Run: php.exe test.php // crashes ------------------------------------------------------------------------ [2018-01-29 16:35:08] john-stevenson at blueyonder dot co dot uk Description: ------------ When a cli script (with opcache and xdebug loaded, and opcache.enable_cli=1) is restarted without xdebug, the restarted process crashes (but only on Windows). First reported in Composer: https://github.com/composer/composer/issues/6052 Fixed in user-land by setting opcache.enable_cli=0 for the new process Reported to Xdebug: https://bugs.xdebug.org/view.php?id=1393 Note that if the process is restarted WITH xdebug loaded there is no crash. Test script: --------------- Enable opcache and xdebug extensions. Set opcache.enable_cli=1 Download: https://getcomposer.org/download/1.3.1/composer.phar Run: php.exe comoser.phar --version OR use this simple restart.php script: https://gist.github.com/johnstevenson/12348144c498e9545cd73ea01435c904 Run: php.exe restart.php (crashes) Run: php.exe restart.php --fix (okay) Run: php.exe restart.php --keep-xdebug (okay) Actual result: -------------- From PHP-7.2.1 Unhandled exception at 0x00007FFF817C0D8F (ntdll.dll) in php.exe: RangeChecks instrumentation code detected an out of range array access. occurred ntdll.dll!LdrpICallHandler() Unknown Non-user code. ntdll.dll!RtlpExecuteHandlerForException() Unknown Non-user code. ntdll.dll!RtlDispatchException() Unknown Non-user code. ntdll.dll!KiUserExceptionDispatch() Unknown Non-user code. ntdll.dll!LdrpValidateUserCallTarget() Unknown Non-user code. php7ts.dll!ZEND_USER_OPCODE_SPEC_HANDLER(_zend_execute_data * execute_data) Line 1813 php7ts.dll!execute_ex(_zend_execute_data * ex) Line 59726 php7ts.dll!zend_execute(_zend_op_array * op_array, _zval_struct * return_value) Line 63764 php7ts.dll!zend_execute_scripts(int type, _zval_struct * retval, int file_count, ...) Line 1497 php7ts.dll!php_execute_script(_zend_file_handle * primary_file) Line 2590 php.exe!do_cli(int argc, char * * argv) Line 1012 php.exe!main(int argc, char * * argv) Line 1404 ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=75886&edit=1

« previous php.bugs (#213853) next »