nextcloud / server

☁️ Nextcloud server, a safe home for all your data
https://nextcloud.com
GNU Affero General Public License v3.0
27.33k stars 4.06k forks source link

[Bug]: Wrong user quota #45079

Closed carlosjfcasero closed 5 months ago

carlosjfcasero commented 6 months ago

⚠️ This issue respects the following points: ⚠️

Bug description

The free space for nextcloud users is incorrect. In fact, it is correct in some views and incorrect in others. Data is mounted in docker volume:

  1. In user settings it is shown as unlimited and free space is OK:

    image
  2. In "files" view, clicking in space used (bottom left) front doesn't print anything but in browser console call to /apps/files/api/v1/stats is done with following response:

{
    "message": "ok",
    "data": {
        "free": 2004495601664,
        "used": 573773865119,
        "quota": -3,
        "total": 2578269466783,
        "relative": 22.25,
        "owner": "f3",
        "ownerDisplayName": "F3",
        "mountType": "",
        "mountPoint": ""
    }
}

where free space is OK.

  1. However, in users view from admin page, free space is not shown correctly: image

    Although it says unlimited, is not OK Because of this, a 500 is returned when trying to upload files.

Steps to reproduce

  1. Go to main menu
  2. Click on users

Expected behavior

Have the proper free space and allowing continue uploading files

Installation method

Community Docker image

Nextcloud Server version

29

Operating system

Debian/Ubuntu

PHP engine version

PHP 8.2

Web server

Apache (supported)

Database engine version

MariaDB

Is this bug present after an update or on a fresh install?

None

Are you using the Nextcloud Server Encryption module?

Encryption is Disabled

What user-backends are you using?

Configuration report

{
    "system": {
        "htaccess.RewriteBase": "\/",
        "memcache.local": "\\OC\\Memcache\\APCu",
        "filelocking.enabled": true,
        "memcache.locking": "\\OC\\Memcache\\APCu",
        "apps_paths": [
            {
                "path": "\/var\/www\/html\/apps",
                "url": "\/apps",
                "writable": false
            },
            {
                "path": "\/var\/www\/html\/custom_apps",
                "url": "\/custom_apps",
                "writable": true
            }
        ],
        "overwriteprotocol": "https",
        "trusted_proxies": "***REMOVED SENSITIVE VALUE***",
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "nextcloud.f3.ddnsfree.com",
            "nextcloud.f3.loseyourip.com",
            "nextcloud.local.me"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "mysql",
        "version": "29.0.0.19",
        "overwrite.cli.url": "https:\/\/nextcloud.f3.ddnsfree.com",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "",
        "dbtableprefix": "oc_",
        "mysql.utf8mb4": true,
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "loglevel": 2,
        "maintenance": false,
        "enabledPreviewProviders": [
            "OC\\Preview\\PNG",
            "OC\\Preview\\JPEG",
            "OC\\Preview\\GIF",
            "OC\\Preview\\BMP",
            "OC\\Preview\\XBitmap",
            "OC\\Preview\\MP3",
            "OC\\Preview\\TXT",
            "OC\\Preview\\MarkDown",
            "OC\\Preview\\OpenDocument",
            "OC\\Preview\\Krita",
            "OC\\Preview\\HEIC",
            "OC\\Preview\\MKV",
            "OC\\Preview\\MP4",
            "OC\\Preview\\AVI",
            "OC\\Preview\\Image",
            "OC\\Preview\\Movie"
        ],
        "app_install_overwrite": [
            "keeweb"
        ],
        "maintenance_window_start": 2,
        "memories.db.triggers.fcu": true,
        "memories.exiftool": "\/var\/www\/html\/custom_apps\/memories\/bin-ext\/exiftool-aarch64-glibc",
        "memories.vod.path": "\/var\/www\/html\/custom_apps\/memories\/bin-ext\/go-vod-aarch64",
        "memories.gis_type": 1,
        "quota_include_external_storage": false,
        "filesystem_check_changes": 1
    }
}

List of activated Apps

Enabled:
  - activity: 2.21.1
  - circles: 29.0.0-dev
  - cloud_federation_api: 1.12.0
  - cloud_py_api: 0.1.9
  - comments: 1.19.0
  - contactsinteraction: 1.10.0
  - cookbook: 0.11.0
  - dashboard: 7.9.0
  - dav: 1.30.1
  - federatedfilesharing: 1.19.0
  - federation: 1.19.0
  - files: 2.1.0
  - files_downloadlimit: 2.0.0
  - files_external: 1.21.0
  - files_pdfviewer: 2.10.0
  - files_reminders: 1.2.0
  - files_sharing: 1.21.0
  - files_trashbin: 1.19.0
  - files_versions: 1.22.0
  - firstrunwizard: 2.18.0
  - keeweb: 0.6.18
  - logreader: 2.14.0
  - lookup_server_connector: 1.17.0
  - mediadc: 0.3.8
  - memories: 7.2.0
  - nextcloud_announcements: 1.18.0
  - notifications: 2.17.0
  - oauth2: 1.17.0
  - password_policy: 1.19.0
  - photos: 2.5.0
  - previewgenerator: 5.5.0
  - privacy: 1.13.0
  - provisioning_api: 1.19.0
  - recognize: 6.1.1
  - recommendations: 2.1.0
  - related_resources: 1.4.0
  - richdocuments: 8.4.0
  - serverinfo: 1.19.0
  - settings: 1.12.0
  - sharebymail: 1.19.0
  - support: 1.12.0
  - survey_client: 1.17.0
  - systemtags: 1.19.0
  - theming: 2.4.0
  - twofactor_backupcodes: 1.18.0
  - twofactor_totp: 11.0.0-dev
  - updatenotification: 1.19.1
  - user_status: 1.9.0
  - viewer: 2.3.0
  - weather_status: 1.9.0
  - workflowengine: 2.11.0
Disabled:
  - admin_audit: 1.19.0
  - app_api: 2.3.2 (installed 2.3.2)
  - bruteforcesettings: 2.9.0
  - duplicatefinder: 1.1.8 (installed 1.1.8)
  - encryption: 2.17.0
  - files_rightclick: 0.15.1 (installed 1.6.0)
  - suspicious_login: 7.0.0
  - tasks: 0.15.0 (installed 0.15.0)
  - text: 3.10.0 (installed 3.6.0)
  - user_ldap: 1.20.0

Nextcloud Signing status

No errors have been found.

Nextcloud Logs

{"reqId":"e3CXXFb6grOtNJ6APqlX","level":3,"time":"2024-04-27T19:09:38+00:00","remoteAddr":"192.168.10.108","user":"f3","app":"webdav","method":"PUT","url":"/remote.php/dav/uploads/f3/A41B7350-4D07-45A1-BAF5-E195DC74D197/1","message":"Invalid, or could not parse URI","userAgent":"Mozilla/5.0 (iOS) Nextcloud-iOS/5.2.7","version":"29.0.0.19","exception":{"Exception":"Sabre\\Uri\\InvalidUriException","Message":"Invalid, or could not parse URI","Code":0,"Trace":[{"file":"/var/www/html/3rdparty/sabre/uri/lib/functions.php","line":120,"function":"Sabre\\Uri\\parse","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":565,"function":"Sabre\\Uri\\normalize","args":[null]},{"file":"/var/www/html/apps/dav/lib/Connector/Sabre/QuotaPlugin.php","line":100,"function":"calculateUri","class":"Sabre\\DAV\\Server","type":"->","args":[null]},{"file":"/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"beforeCreateFile","class":"OCA\\DAV\\Connector\\Sabre\\QuotaPlugin","type":"->","args":["*** sensitive parameters replaced ***","*** sensitive parameters replaced ***",["OCA\\DAV\\Upload\\UploadFolder"],false]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":1094,"function":"emit","class":"Sabre\\DAV\\Server","type":"->","args":["beforeCreateFile",["*** sensitive parameters replaced ***","*** sensitive parameters replaced ***",["OCA\\DAV\\Upload\\UploadFolder"],false]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php","line":504,"function":"createFile","class":"Sabre\\DAV\\Server","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"httpPut","class":"Sabre\\DAV\\CorePlugin","type":"->","args":[["Sabre\\HTTP\\Request"],["Sabre\\HTTP\\Response"]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":472,"function":"emit","class":"Sabre\\DAV\\Server","type":"->","args":["method:PUT",[["Sabre\\HTTP\\Request"],["Sabre\\HTTP\\Response"]]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":253,"function":"invokeMethod","class":"Sabre\\DAV\\Server","type":"->","args":[["Sabre\\HTTP\\Request"],["Sabre\\HTTP\\Response"]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":321,"function":"start","class":"Sabre\\DAV\\Server","type":"->","args":[]},{"file":"/var/www/html/apps/dav/lib/Server.php","line":374,"function":"exec","class":"Sabre\\DAV\\Server","type":"->","args":[]},{"file":"/var/www/html/apps/dav/appinfo/v2/remote.php","line":35,"function":"exec","class":"OCA\\DAV\\Server","type":"->","args":[]},{"file":"/var/www/html/remote.php","line":172,"args":["/var/www/html/apps/dav/appinfo/v2/remote.php"],"function":"require_once"}],"File":"/var/www/html/3rdparty/sabre/uri/lib/functions.php","Line":206,"message":"Invalid, or could not parse URI","exception":[],"CustomMessage":"Invalid, or could not parse URI"},"id":"662d4d7bb5bb3"}

Additional info

Log is of the process of trying to upload a file. No logs for free space section is provided

susnux commented 6 months ago

Because of this, a 500 is returned when trying to upload files.

How do you try to upload the files? With Nextcloud clients? Web ui? Are you running a reverse proxy in front of the server?

Because the error in the log file is not about invalid space or quota, but about the Destination header being null on the PUT request.

carlosjfcasero commented 6 months ago

I'm trying to upload filed with Nextcloud client (iOS). I didn't try to upload with Android client or through web ui. In front of the server I'm running a Traefik, but I didn't change any config regarding Traefik. In fact, I'm able to upload small files (photos, for example) but the ones that fail are the heaviest (200-800MB videos)

EDIT: I uploaded a heavy file through web ui with no problem.