Bug #70360 [Fbk->NoF]: Segmentation fault for every request

From: Date: Sun, 05 Nov 2017 04:22:41 +0000
Subject: Bug #70360 [Fbk->NoF]: Segmentation fault for every request
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-212449@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 Updated by: php-bugs@lists.php.net Reported by: atippett at gmail dot com Summary: Segmentation fault for every request -Status: Feedback +Status: No Feedback Type: Bug Package: opcache Operating System: Linux fenrir 3.16.0-4-amd64 #1 PHP Version: 5.6.12 Assigned To: cmb Private report: N New Comment: No feedback was provided. The bug is being suspended because we assume that you are no longer experiencing the problem. If this is not the case and you are able to provide the information that was requested earlier, please do so and change the status of the bug back to "Re-Opened". Thank you. Previous Comments: ------------------------------------------------------------------------ [2017-09-20 12:00:59] cmb@php.net Could you check if 5.6.31 resolves this issue? ------------------------------------------------------------------------ [2015-10-26 21:14:03] nikic@php.net As this issue is caused by pass 1_5 and happens in gc_remove_from_buffer() this may be the same issue as https://bugs.php.net/bug.php?id=70601. Could you check if 5.6.15RC1 (or 5.6-dev) resolves this issue? ------------------------------------------------------------------------ [2015-09-30 15:59:06] aliis dot jh at gmail dot com 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. ------------------------------------------------------------------------ [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 ------------------------------------------------------------------------ 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 (#212449) next »