Req #76225 [Opn]: ini setting to not empty opcache when php-fpm is reloaded
| From: | nikic@php.net | Date: | Mon, 23 Apr 2018 19:44:50 +0000 |
| Subject: | Req #76225 [Opn]: ini setting to not empty opcache when php-fpm is reloaded | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-214850@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=76225&edit=1
ID: 76225
Updated by: nikic@php.net
Reported by: post at minhost dot no
Summary: ini setting to not empty opcache when php-fpm is
reloaded
Status: Open
Type: Feature/Change Request
Package: opcache
Operating System: CentOS 7.4
PHP Version: 7.1.16
Block user comment: N
Private report: N
New Comment:
SIGABRT (most likely) indicates that an assertion failure occurred. These only happen in debug
builds, so it's expected that you see a different behavior in non-debug builds.
SIGABRT should also be generating core dumps. I'm not sure why this doesn't work for you.
One more thing to check would be if you have the rlimit_core option specified in an fpm pool config.
It should be either not present at all, or set to rlimit_core=unlimited.
Previous Comments:
------------------------------------------------------------------------
[2018-04-23 18:59:29] post at minhost dot no
The crazy thing is that on the test server with a copy of the sites from production server, I only
get SIGABRT in php-fpm.log when php-fpm/opcache crashes, but on the production server I get SIGSEGV
in php-fpm.log when php-fpm/opcache crashes on the same sites.
------------------------------------------------------------------------
[2018-04-23 18:52:12] post at minhost dot no
Please note that whenever php-fpm/opcache crash, it causes a SIGABRT in php-fpm.log like this:
[23-Apr-2018 20:35:50] WARNING: [pool asle] child 949 exited on signal 6 (SIGABRT) after 169.991198
seconds from start
And no core dump file is generated in /tmp - is it because it is a SIGABRT and not a SIGSEGV? Should
I be able to get a core dump file on crash with SIGABRT?
------------------------------------------------------------------------
[2018-04-23 10:57:22] post at minhost dot no
I was able to get one step closer to generating core dumps. It seems I needed to add the following
to /etc/security/limits.conf:
* soft core unlimited
After doing that I was able to get a core file in /tmp when running this command:
kill -s SIGSEGV $$
However when php-fpm/opcache crash, there is still not generated any core files in /tmp
I have even changed PrivateTmp=true to be PrivateTmp=false - but still no luck.
------------------------------------------------------------------------
[2018-04-20 18:23:02] post at minhost dot no
On the test server I have managed to crash two test sites now
Some observations I have done now, is that each time I get crash on the test server, it is no more
free memory in opcahe, like this (the test server does not have a lot of memory):
Used memory 134214488
Free memory 3240
However on the production servers, I have allocated 32 GB to opcache, and I have never seen it use
more then 9 GB in opcache.
However I am not sure how opcache user the memory limit I set, because the 32 GB is not visible when
looking at used memory in shell:
[root@production-server ~]# free -m
total used free shared buff/cache available
Mem: 128658 14825 1961 6672 111870 106292
Swap: 955 954 1
Could it be that opcache is not able to allocate memory from the already used buffer/cache above? Or
is the 32 GB memory limit in opcache already accounted for in the current buffer/cache?
Anyway, I am still not able to get any dump files in /tmp on the test server.
------------------------------------------------------------------------
[2018-04-20 16:02:40] post at minhost dot no
By the way, when I manually double check by looking into the file:
/proc/sys/kernel/core_pattern
It correctly has this content:
/tmp/core-%e.%p
And looking into:
/proc/sys/kernel/core_uses_pid
It correctly has this content:
0
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=76225
--
Edit this bug report at https://bugs.php.net/bug.php?id=76225&edit=1