Bug #72590 [NEW]: Opcache restart with kill_all_lockers does not work as expected
| From: | keyur@php.net | Date: | Wed, 13 Jul 2016 02:38:15 +0000 |
| Subject: | Bug #72590 [NEW]: Opcache restart with kill_all_lockers does not work as expected | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-202265@lists.php.net to get a copy of this message | ||
From: keyur@php.net
Operating system: Linux
PHP version: 7.0.8
Package: opcache
Bug Type: Bug
Bug description:Opcache restart with kill_all_lockers does not work as expected
Description:
------------
Suppose one of the Apache child is blocked by a malloc deadlock while
holding a read lock on Opcache. After some time Opcache gets full and is
scheduled to be restarted.
Because of the child holding the lock, we eventually end up calling
kill_all_lockers.
This line
https://github.com/php/php-src/blob/PHP-7.0.0/ext/opcache/ZendAccelerator.c#L600
calls zend_accel_error with ACCEL_LOG_ERROR.
ACCEL_LOG_ERROR is special and causes a zend_bailout, so the code never
gets to call kill() in line 601. Combined with the reset of
force_restart_time in line 597, the child is never terminated and
Opcache never restarts.
The fix would be to change the log level to ACCEL_LOG_WARNING
--
Edit bug report at https://bugs.php.net/bug.php?id=72590&edit=1
--
Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=72590&r=trysnapshot54
Try a snapshot (PHP 5.5): https://bugs.php.net/fix.php?id=72590&r=trysnapshot55
Try a snapshot (trunk): https://bugs.php.net/fix.php?id=72590&r=trysnapshottrunk
Fixed in SVN: https://bugs.php.net/fix.php?id=72590&r=fixed
Fixed in release: https://bugs.php.net/fix.php?id=72590&r=alreadyfixed
Need backtrace: https://bugs.php.net/fix.php?id=72590&r=needtrace
Need Reproduce Script: https://bugs.php.net/fix.php?id=72590&r=needscript
Try newer version: https://bugs.php.net/fix.php?id=72590&r=oldversion
Not developer issue: https://bugs.php.net/fix.php?id=72590&r=support
Expected behavior: https://bugs.php.net/fix.php?id=72590&r=notwrong
Not enough info: https://bugs.php.net/fix.php?id=72590&r=notenoughinfo
Submitted twice: https://bugs.php.net/fix.php?id=72590&r=submittedtwice
register_globals: https://bugs.php.net/fix.php?id=72590&r=globals
PHP 4 support discontinued: https://bugs.php.net/fix.php?id=72590&r=php4
Daylight Savings: https://bugs.php.net/fix.php?id=72590&r=dst
IIS Stability: https://bugs.php.net/fix.php?id=72590&r=isapi
Install GNU Sed: https://bugs.php.net/fix.php?id=72590&r=gnused
Floating point limitations: https://bugs.php.net/fix.php?id=72590&r=float
No Zend Extensions: https://bugs.php.net/fix.php?id=72590&r=nozend
MySQL Configuration Error: https://bugs.php.net/fix.php?id=72590&r=mysqlcfg