Bug #67481 [Opn]: Opcache uses wrong file from cache

From: Date: Thu, 19 Jun 2014 17:43:18 +0000
Subject: Bug #67481 [Opn]: Opcache uses wrong file from cache
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-186263@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=67481&edit=1 ID: 67481 User updated by: Danack at basereality dot com Reported by: Danack at basereality dot com -Summary: Opcache +Summary: Opcache uses wrong file from cache Status: Open Type: Bug Package: opcache Operating System: Centos PHP Version: 5.5.13 Block user comment: N Private report: N New Comment: Made summary not be one word. Previous Comments: ------------------------------------------------------------------------ [2014-06-19 16:02:37] Danack at basereality dot com Description: ------------ When the config 'opcache.validate_timestamps' is set to 0 opcache incorrectly resolves relative filenames. If you include a file with require "../src/bootstrap.php"; from two completely different directories then OPcache will serve the same file even though realpath("../src/bootstrap.php"); resolves to completely different directories. This does not happen when opcache.validate_timestamps is set to a non-zero value. It can also be worked around by using require __DIR__ . '/../src/bootstrap.php'; Test script: --------------- File /home/project1/web/index.php ================================= <?php require "../src/bootstrap.php"; ?> File /home/project2/web/index.php ================================= <?php require "../src/bootstrap.php"; ?> File /home/project2/src/bootstrap.php ===================================== <?php echo "I am project2's bootstrap file."; If you go to a webpage served by project1 first, then go to a webpage served by project2, project2 will get be given project1's bootstrap file. ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=67481&edit=1

« previous php.bugs (#186263) next »