Bug #70360 [Com]: Segmentation fault for every request
| From: | aliis dot jh at gmail dot com | Date: | Fri, 04 Sep 2015 08:37:11 +0000 |
| Subject: | Bug #70360 [Com]: Segmentation fault for every request | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-195749@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=70360&edit=1
ID: 70360
Comment by: aliis dot jh at gmail dot com
Reported by: atippett at gmail dot com
Summary: Segmentation fault for every request
Status: Open
Type: Bug
Package: opcache
Operating System: Linux fenrir 3.16.0-4-amd64 #1
PHP Version: 5.6.12
Block user comment: N
Private report: N
New Comment:
After further testing on fenrir, we have that all bitmask settings for:
opcache.optimization_level do NOT produce segfaults EXCEPT the first bit.
Working: 0xXXXXXXXX0 // where 'X'=f|0
Segfault: 0xXXXXXXXXf // where 'X'=f|0
So only combinations of bit flags with the first bit enabled result in segfaults, all other
combinations work fine.
From reference, I believe this is the flag for pass 1, operations:
* - substitute persistent constants (true, false, null, etc)
* - perform compile-time evaluation of constant binary and unary operations
* - optimize series of ADD_STRING and/or ADD_CHAR
* - convert CAST(IS_BOOL,x) into BOOL(x)
* - convert INTI_FCALL_BY_NAME + DO_FCALL_BY_NAME into DO_FCALL
Reference:
http://stackoverflow.com/questions/21181045/php-opcache-optimization-levels-what-are-they
https://github.com/zendtech/ZendOptimizerPlus/blob/master/Optimizer/zend_optimizer.c
Previous Comments:
------------------------------------------------------------------------
[2015-09-04 07:14:42] aliis dot jh at gmail dot com
After updating fenrir to opcache: Zend OPcache v7.0.6-dev
We're still getting segfaults with the php.ini setting:
opcache.optimization_level=0xffffffff
As soon as we set opcache.optimization_level=0 the segfaults stop.
------------------------------------------------------------------------
[2015-08-28 18:17:56] atippett at gmail dot com
I believe this might be related to https://bugs.php.net/bug.php?id=69549 I'll
run some tests tonight with the updated version of php on fenrir.
------------------------------------------------------------------------
[2015-08-28 10:11:26] steve at stephenorr dot co dot uk
Same issue for me on PHP 5.6.12-1+deb.sury.org~vivid+1 (as provided in ondrej PPA on Ubuntu).
Disabling opcache initially appeared to resolve the problem, but it looks like my actual issue was
that I also had the xcache extension enabled, and the two were conflicting.
Uninstalling xcache and re-enabling opcache seems to work.
------------------------------------------------------------------------
[2015-08-26 06:37:41] atippett at gmail dot com
changing to package opcache
------------------------------------------------------------------------
[2015-08-26 06:35:39] atippett at gmail dot com
Please advice:
After much poking, turning off opcache (7.0.4) fixes the issues. It's terrible hard to
diagnosis what's going on and any recommendations are welcome. The code runs fine after an
apache2ctl restart for sometimes a 1/2 day or so but if we stress test the system with a lots of
connections we can reproduce a segmentation fault when opcache is on. Other sites under the same
webserver continue to work but any access to the url we stress test produces a core dump on every
request until we restart apache. We've tried to narrow down what code is causing it but have
been unsuccessful at finding a code example that we can pass on. Any recommendations?
------------------------------------------------------------------------
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=70360
--
Edit this bug report at https://bugs.php.net/bug.php?id=70360&edit=1