Bug #74213 [Com]: Esoteric file causes segfault with 7.1 && opcache

From: Date: Tue, 07 Mar 2017 10:56:30 +0000
Subject: Bug #74213 [Com]: Esoteric file causes segfault with 7.1 && opcache
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-207715@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=74213&edit=1 ID: 74213 Comment by: andrew dot nester dot dev at gmail dot com Reported by: georgestephanis at automattic dot com Summary: Esoteric file causes segfault with 7.1 && opcache Status: Open Type: Bug Package: opcache PHP Version: 7.1.2 Block user comment: N Private report: N New Comment: I was trying to reproduce it but no success. Could you please describe exact steps you did to reproduces this issue? Thanks! Previous Comments: ------------------------------------------------------------------------ [2017-03-06 18:16:39] georgestephanis at automattic dot com Description: ------------ When a certain file is loaded in PHP 7.1 with Opcache turned on -- in our case it was https://raw.githubusercontent.com/Automattic/jetpack/4.6/modules/related-posts/jetpack-related-posts.php -- the server segfaults and returns a 500 error. A user provided this strace, included in the Actual Result field. I've distilled it down to the following test script, which -- if loaded into a php file will also segfault, unless you ini_set( 'opcache.enable', 0 ); to disable opcache. The code works just fine in PHP 7.0 -- so 7.1 seems to have been a break. Test script: --------------- <?php // https://gist.github.com/georgestephanis/7a0c81593581842d36e2383ae22c0a77 class Test_Class { public static function init() { static $instance = NULL; $instance = new Test_Class(); return $instance; } } class Test_Class_Raw extends Test_Class {} Actual result: -------------- 6851 14716 unlink("/home/**redacted**/.opcache/89683bd16d8b1548698d49eab705558a/home/**redacted**/public_html/wpphp71/wp-content/plugins/jetpack/modules/related-posts/jetpack-related-post s.php.bin") = 0 6852 14716 stat("/home/**redacted**/public_html/wpphp71/wp-content/plugins/jetpack/modules/related-posts/jetpack-related-posts.php", {st_mode=S_IFREG|0644, st_size=42917, ...}) = 0 6853 14716 mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4eb0800000 6854 14716 munmap(0x7f4eb0800000, 2097152) = 0 6855 14716 fcntl(3, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=0, len=1}) = 0 6856 14716 fcntl(3, F_SETLK, {type=F_UNLCK, whence=SEEK_SET, start=0, len=1}) = 0 6857 14716 mkdir("/home/**redacted**/.opcache", 0700) = -1 EEXIST (File exists) 6858 14716 mkdir("/home/**redacted**/.opcache/89683bd16d8b1548698d49eab705558a", 0700) = -1 EEXIST (File exists) 6859 14716 mkdir("/home/**redacted**/.opcache/89683bd16d8b1548698d49eab705558a/home", 0700) = -1 EEXIST (File exists) 6860 14716 mkdir("/home/**redacted**/.opcache/89683bd16d8b1548698d49eab705558a/home/**redacted**", 0700) = -1 EEXIST (File exists) 6861 14716 mkdir("/home/**redacted**/.opcache/89683bd16d8b1548698d49eab705558a/home/**redacted**/public_html", 0700) = -1 EEXIST (File exists) 6862 14716 mkdir("/home/**redacted**/.opcache/89683bd16d8b1548698d49eab705558a/home/**redacted**/public_html/wpphp71", 0700) = -1 EEXIST (File exists) 6863 14716 mkdir("/home/**redacted**/.opcache/89683bd16d8b1548698d49eab705558a/home/**redacted**/public_html/wpphp71/wp-content", 0700) = -1 EEXIST (File exists) 6864 14716 mkdir("/home/**redacted**/.opcache/89683bd16d8b1548698d49eab705558a/home/**redacted**/public_html/wpphp71/wp-content/plugins", 0700) = -1 EEXIST (File exists) 6865 14716 mkdir("/home/**redacted**/.opcache/89683bd16d8b1548698d49eab705558a/home/**redacted**/public_html/wpphp71/wp-content/plugins/jetpack", 0700) = -1 EEXIST (File exists) 6866 14716 mkdir("/home/**redacted**/.opcache/89683bd16d8b1548698d49eab705558a/home/**redacted**/public_html/wpphp71/wp-content/plugins/jetpack/modules", 0700) = -1 EEXIST (File exists) 6867 14716 mkdir("/home/**redacted**/.opcache/89683bd16d8b1548698d49eab705558a/home/**redacted**/public_html/wpphp71/wp-content/plugins/jetpack/modules/related-posts", 0700) = -1 EEXIST ( File exists) 6868 14716 open("/home/**redacted**/.opcache/89683bd16d8b1548698d49eab705558a/home/**redacted**/public_html/wpphp71/wp-content/plugins/jetpack/modules/related-posts/jetpack-related-posts. php.bin", O_RDWR|O_CREAT|O_EXCL, 0600) = 6 6869 14716 flock(6, LOCK_EX) = 0 6870 14716 --- SIGSEGV (Segmentation fault) @ 0 (0) --- ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=74213&edit=1

« previous php.bugs (#207715) next »