]> source.dussan.org Git - nextcloud-server.git/commitdiff
Set up FS before querying storage info in settings 24156/head
authorVincent Petry <vincent@nextcloud.com>
Fri, 13 Nov 2020 15:52:08 +0000 (16:52 +0100)
committerbackportbot[bot] <backportbot[bot]@users.noreply.github.com>
Mon, 16 Nov 2020 11:06:35 +0000 (11:06 +0000)
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 <vincent@nextcloud.com>
apps/settings/lib/Settings/Personal/PersonalInfo.php
lib/private/legacy/OC_Helper.php

index c4b505c424854579b3ba86ecd415d90041cd6ae7..afadc3c775d002f4c01ae581060648b01cbf23ea 100644 (file)
@@ -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');
index 0d39a82e510cac7a02b083974c143096d22749ae..44fbdffc092308a329673fb490492777065bccb4 100644 (file)
@@ -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