summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorArthur Schiwon <blizzz@arthur-schiwon.de>2023-09-08 16:40:48 +0200
committerArthur Schiwon <blizzz@arthur-schiwon.de>2023-09-08 16:55:39 +0200
commit603a659a37cdbb63627766362736127978a92ade (patch)
tree91ed9ddc750ba3c8eb6bce13be0cf067a8999d23 /lib
parent747d9ef511165aea79a95d736fb53f385933e80b (diff)
downloadnextcloud-server-603a659a37cdbb63627766362736127978a92ade.tar.gz
nextcloud-server-603a659a37cdbb63627766362736127978a92ade.zip
fix(autoloader): no apcu no side effects
apcu lead to side effects especially with app management and (soft) inter-dependencies, and lead also to 500 server errors. While we could add management to clear apcu cache in many cases (may stil leave edge cases) the performance benefit is marginally as also class maps are already cached in opcache. Hence, the simple and effective way to go is to not use apcu for autoloading. Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Diffstat (limited to 'lib')
-rw-r--r--lib/base.php7
-rw-r--r--lib/private/legacy/OC_Util.php3
2 files changed, 4 insertions, 6 deletions
diff --git a/lib/base.php b/lib/base.php
index d96f91ddcd4..26e88979a48 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -114,8 +114,6 @@ class OC {
public static string $configDir;
- public static int $VERSION_MTIME = 0;
-
/**
* requested app
*/
@@ -610,10 +608,9 @@ class OC {
self::$CLI = (php_sapi_name() == 'cli');
- // Add default composer PSR-4 autoloader
+ // Add default composer PSR-4 autoloader, ensure apcu to be disabled
self::$composerAutoloader = require_once OC::$SERVERROOT . '/lib/composer/autoload.php';
- OC::$VERSION_MTIME = filemtime(OC::$SERVERROOT . '/version.php');
- self::$composerAutoloader->setApcuPrefix('composer_autoload_' . md5(OC::$SERVERROOT . '_' . OC::$VERSION_MTIME));
+ self::$composerAutoloader->setApcuPrefix(null);
try {
self::initPaths();
diff --git a/lib/private/legacy/OC_Util.php b/lib/private/legacy/OC_Util.php
index 9d62c46137e..f82ddcc78ee 100644
--- a/lib/private/legacy/OC_Util.php
+++ b/lib/private/legacy/OC_Util.php
@@ -325,9 +325,10 @@ class OC_Util {
return;
}
+ $timestamp = filemtime(OC::$SERVERROOT . '/version.php');
require OC::$SERVERROOT . '/version.php';
/** @var int $timestamp */
- self::$versionCache['OC_Version_Timestamp'] = \OC::$VERSION_MTIME;
+ self::$versionCache['OC_Version_Timestamp'] = $timestamp;
/** @var string $OC_Version */
self::$versionCache['OC_Version'] = $OC_Version;
/** @var string $OC_VersionString */