From: helge at monsternett dot no
Operating system: Debian Stretch
PHP version: 5.6.36
Package: opcache
Bug Type: Bug
Bug description:opcache + MPM ITK might cause apache2 to halt
Description:
------------
The exact version is 5.6.33+dfsg-0+deb8u1, packaged by Debian.
Reading the source code in ZendAccelerator.c and your documentation for
opcache.log_verbosity_level, it would seem like opcache will in some
cases kill other apache2 processes (in kill_all_lockers) if the
accelerator hasn't been restarted in a timely fashion.
This does not work well with the MTM ITK apache2 module enabled, since
the sibling process to be killed might be owned by a different unix
user, resulting in an infinite stream of:
kill(16329, SIGKILL) = -1 EPERM (Operation not
permitted)
fcntl(523, F_GETLK, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=1,
l_len=1, l_pid=16329}) = 0
.. repeating ..
Here's the backtrace when this happens:
#0 0x00007f8f5a2c5317 in kill () at
../sysdeps/unix/syscall-template.S:84
#1 0x00007f8efe7238c6 in ?? () from
target:/usr/lib/php5/20131226/opcache.so
#2 0x00007f8f554702ce in zend_llist_apply () from
target:/usr/lib/apache2/modules/libphp5.so
#3 0x00007f8f5546c18a in init_executor () from
target:/usr/lib/apache2/modules/libphp5.so
#4 0x00007f8f5547cd43 in zend_activate () from
target:/usr/lib/apache2/modules/libphp5.so
#5 0x00007f8f55417da5 in php_request_startup () from
target:/usr/lib/apache2/modules/libphp5.so
#6 0x00007f8f5552e46a in ?? () from
target:/usr/lib/apache2/modules/libphp5.so
#7 0x0000564b7b544c40 in ap_run_handler ()
#8 0x0000564b7b5451d6 in ap_invoke_handler ()
#9 0x0000564b7b55cdd3 in ap_process_async_request ()
#10 0x0000564b7b55cee0 in ap_process_request ()
#11 0x0000564b7b558f9d in ?? ()
#12 0x0000564b7b54ea70 in ap_run_process_connection ()
#13 0x00007f8f568929dd in itk_fork_process () from
target:/usr/lib/apache2/modules/mpm_itk.so
#14 0x0000564b7b54ea70 in ap_run_process_connection ()
#15 0x00007f8f564856bf in ?? () from
target:/usr/lib/apache2/modules/mod_mpm_prefork.so
#16 0x00007f8f56485944 in ?? () from
target:/usr/lib/apache2/modules/mod_mpm_prefork.so
#17 0x00007f8f5648680d in ?? () from
target:/usr/lib/apache2/modules/mod_mpm_prefork.so
#18 0x0000564b7b52800e in ap_run_mpm ()
#19 0x0000564b7b520c4d in main ()
It's hard for me to find out if this is fixed in later versions or not,
since I'm not sure how I can even force opcache to execute
kill_all_lockers. This happened sporadically (2 times per day on
average) in a production server before I understood the problem and
disabled the opcache extension. But I thought I would send a report in
case this was an unknown problem. I understand it's not strictly a
problem with opcache, but at the same time, it should handle the case
where it's not able to kill the process better.
--
Edit bug report at https://bugs.php.net/bug.php?id=76482&edit=1
--
Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=76482&r=trysnapshot54
Try a snapshot (PHP 5.5): https://bugs.php.net/fix.php?id=76482&r=trysnapshot55
Try a snapshot (trunk): https://bugs.php.net/fix.php?id=76482&r=trysnapshottrunk
Fixed in SVN: https://bugs.php.net/fix.php?id=76482&r=fixed
Fixed in release: https://bugs.php.net/fix.php?id=76482&r=alreadyfixed
Need backtrace: https://bugs.php.net/fix.php?id=76482&r=needtrace
Need Reproduce Script: https://bugs.php.net/fix.php?id=76482&r=needscript
Try newer version: https://bugs.php.net/fix.php?id=76482&r=oldversion
Not developer issue: https://bugs.php.net/fix.php?id=76482&r=support
Expected behavior: https://bugs.php.net/fix.php?id=76482&r=notwrong
Not enough info: https://bugs.php.net/fix.php?id=76482&r=notenoughinfo
Submitted twice: https://bugs.php.net/fix.php?id=76482&r=submittedtwice
register_globals: https://bugs.php.net/fix.php?id=76482&r=globals
PHP 4 support discontinued: https://bugs.php.net/fix.php?id=76482&r=php4
Daylight Savings: https://bugs.php.net/fix.php?id=76482&r=dst
IIS Stability: https://bugs.php.net/fix.php?id=76482&r=isapi
Install GNU Sed: https://bugs.php.net/fix.php?id=76482&r=gnused
Floating point limitations: https://bugs.php.net/fix.php?id=76482&r=float
No Zend Extensions: https://bugs.php.net/fix.php?id=76482&r=nozend
MySQL Configuration Error: https://bugs.php.net/fix.php?id=76482&r=mysqlcfg