Bug #70360 [Com]: Segmentation fault for every request

From: Date: Wed, 30 Sep 2015 15:59:09 +0000
Subject: Bug #70360 [Com]: Segmentation fault for every request
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-196321@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: Thanks nikic, we've now tested incrementally in the range: opcache.optimization_level = [0xfffffff0 - 0xffffffff] All, but the last bit flag work without segfaulting, i.e., opcache.optimization_level = [0xfffffff0 - 0xfffffffe] (OK - No Segfaults) This is equiv: [0b0000 0000 1111 1111 1111 1111 1111 1111 1111 0000] to [0b0000 0000 1111 1111 1111 1111 1111 1111 1111 1110] Likewise, incrementing from other direction: 0x00000001 - FAIL (segfaults) 0x00000002 - PASS (segfaults) 0x00000003 - FAIL (segfaults) ... for all bitmasks containing / including the first bit 0x0...1 So only the pass for bit flag: 0x00000001 is causing segfaults. Any thoughts or solutions for fixing this issue would be greatly appreciated. Previous Comments: ------------------------------------------------------------------------ [2015-09-04 10:01:16] nikic@php.net @aliis: 0xf == 0b1111, so this will enable the first four passes (which is pass 1_5, pass 2 and pass 3 in practice). To further narrow this down you can try 0x1, 0x2 and 0x4. ------------------------------------------------------------------------ [2015-09-04 08:37:09] aliis dot jh at gmail dot com 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 ------------------------------------------------------------------------ [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. ------------------------------------------------------------------------ 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

« previous php.bugs (#196321) next »