From 32758894a4ca492ce069c69af6fcf98b80809264 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Fri, 13 Nov 2020 16:52:08 +0100 Subject: [PATCH] Set up FS before querying storage info in settings The personal info section of the personal settings is querying the storage quota information. For this it requires the FS to be setup which is not always guaranteed. This fixes an issue where refreshing the settings page would cause it to fail after Redis caches are full. It is likely that when Redis cache is populated, some code path is initializing the FS, so it works so far. But when the cache is populated, that code path is skipped so the FS is not guaranteed to be setup... Signed-off-by: Vincent Petry --- apps/settings/lib/Settings/Personal/PersonalInfo.php | 3 +++ lib/private/legacy/OC_Helper.php | 3 +++ 2 files changed, 6 insertions(+) diff --git a/apps/settings/lib/Settings/Personal/PersonalInfo.php b/apps/settings/lib/Settings/Personal/PersonalInfo.php index c4b505c424..afadc3c775 100644 --- a/apps/settings/lib/Settings/Personal/PersonalInfo.php +++ b/apps/settings/lib/Settings/Personal/PersonalInfo.php @@ -105,6 +105,9 @@ class PersonalInfo implements ISettings { $user = $this->userManager->get($uid); $userData = $this->accountManager->getUser($user); + // make sure FS is setup before querying storage related stuff... + \OC_Util::setupFS($user->getUID()); + $storageInfo = \OC_Helper::getStorageInfo('/'); if ($storageInfo['quota'] === FileInfo::SPACE_UNLIMITED) { $totalSpace = $this->l->t('Unlimited'); diff --git a/lib/private/legacy/OC_Helper.php b/lib/private/legacy/OC_Helper.php index 0d39a82e51..44fbdffc09 100644 --- a/lib/private/legacy/OC_Helper.php +++ b/lib/private/legacy/OC_Helper.php @@ -475,6 +475,9 @@ class OC_Helper { /** * Calculate the disc space for the given path * + * BEWARE: this requires that Util::setupFS() was called + * already ! + * * @param string $path * @param \OCP\Files\FileInfo $rootInfo (optional) * @return array