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

From: Date: Mon, 06 Mar 2017 18:16:47 +0000
Subject: Bug #74213 [NEW]: Esoteric file causes segfault with 7.1 && opcache
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-207710@lists.php.net to get a copy of this message
From: georgestephanis at automattic dot com Operating system: PHP version: 7.1.2 Package: opcache Bug Type: Bug Bug description:Esoteric file causes segfault with 7.1 && opcache 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 bug report at https://bugs.php.net/bug.php?id=74213&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=74213&r=trysnapshot54 Try a snapshot (PHP 5.5): https://bugs.php.net/fix.php?id=74213&r=trysnapshot55 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=74213&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=74213&r=fixed Fixed in release: https://bugs.php.net/fix.php?id=74213&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=74213&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=74213&r=needscript Try newer version: https://bugs.php.net/fix.php?id=74213&r=oldversion Not developer issue: https://bugs.php.net/fix.php?id=74213&r=support Expected behavior: https://bugs.php.net/fix.php?id=74213&r=notwrong Not enough info: https://bugs.php.net/fix.php?id=74213&r=notenoughinfo Submitted twice: https://bugs.php.net/fix.php?id=74213&r=submittedtwice register_globals: https://bugs.php.net/fix.php?id=74213&r=globals PHP 4 support discontinued: https://bugs.php.net/fix.php?id=74213&r=php4 Daylight Savings: https://bugs.php.net/fix.php?id=74213&r=dst IIS Stability: https://bugs.php.net/fix.php?id=74213&r=isapi Install GNU Sed: https://bugs.php.net/fix.php?id=74213&r=gnused Floating point limitations: https://bugs.php.net/fix.php?id=74213&r=float No Zend Extensions: https://bugs.php.net/fix.php?id=74213&r=nozend MySQL Configuration Error: https://bugs.php.net/fix.php?id=74213&r=mysqlcfg

« previous php.bugs (#207710) next »