nextcloud / server

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

got Sabre\DAV\Exception\InsufficientStorage message when uploading a big file with windows client #9198

Closed hiikii closed 6 years ago

hiikii commented 6 years ago

Steps to reproduce

  1. login my windows client
  2. upload a large file (4 GB)
  3. wait for the upload to complete, then got error message

Expected behaviour

upload successful

Actual behaviour

admin manual: The Nextcloud sync client is not affected by these upload limits as it is uploading files in smaller chunks. i found these chunks have finished uploading. but they can't merge into one file. and in my user folder, there are a large number of .part files, and generated over and over again, until they can't be stored. i had 50 GB disk before, and now 0.

Server configuration

Operating system: Debian 9

Web server: Nginx 1.12.2

Database: MariaDB 5.5.59

PHP version: 7.2.4

Nextcloud version: 13.0.1

Updated from an older Nextcloud/ownCloud or fresh install: fresh install

Where did you install Nextcloud from: nextcloud.com

Signing status:

Signing status ``` No errors have been found. ```

List of activated apps:

App list ``` Enabled: - activity: 2.6.1 - bruteforcesettings: 1.0.3 - comments: 1.3.0 - dav: 1.4.6 - encryption: 2.0.0 - federatedfilesharing: 1.3.1 - federation: 1.3.0 - files: 1.8.0 - files_pdfviewer: 1.2.1 - files_sharing: 1.5.0 - files_texteditor: 2.5.1 - files_trashbin: 1.3.0 - files_versions: 1.6.0 - files_videoplayer: 1.2.0 - firstrunwizard: 2.2.1 - gallery: 18.0.0 - logreader: 2.0.0 - lookup_server_connector: 1.1.0 - nextcloud_announcements: 1.2.0 - notifications: 2.1.2 - oauth2: 1.1.0 - password_policy: 1.3.0 - provisioning_api: 1.3.0 - serverinfo: 1.3.0 - sharebymail: 1.3.0 - survey_client: 1.1.0 - systemtags: 1.3.0 - theming: 1.4.1 - twofactor_backupcodes: 1.2.3 - updatenotification: 1.3.0 - workflowengine: 1.3.0 Disabled: - admin_audit - files_external - user_external - user_ldap ```

Nextcloud configuration:

Config report ``` $CONFIG = array ( 'instanceid' => '', 'passwordsalt' => '', 'secret' => '', 'trusted_domains' => array ( 0 => 'cloud.example.com', ), 'datadirectory' => '/mnt/blockstorage/data', 'overwrite.cli.url' => 'http://cloud.example.com', 'dbtype' => 'mysql', 'version' => '13.0.1.1', 'dbname' => '', 'dbhost' => 'localhost', 'dbport' => '', 'dbtableprefix' => 'oc_', 'dbuser' => '', 'dbpassword' => '', 'installed' => true, 'memcache.local' => '\\OC\\Memcache\\Redis', 'redis' => array ( 'host' => 'localhost', 'port' => 6379, ), 'memcache.locking' => '\\OC\\Memcache\\Redis', 'maintenance' => false, 'theme' => '', 'loglevel' => 2, ); ```

Are you using external storage, if yes which one: vps blockstorage

Are you using encryption: yes

Are you using an external user-backend, if yes which one: no

Client configuration

Browser: i just use the windows destop client: 2.3.3

Operating system: windows

Logs

Web server error log

Web server error log ``` [16/Apr/2018:02:47:31 +0800] "PROPFIND /remote.php/dav/uploads/user/3386511637 HTTP/1.1" 207 96855 "-" "Mozilla/5.0 (Windows) mirall/2.3.3 (build 1) (Nextcloud)" ``` maybe i find the incorrect message, sorry.

Nextcloud log (data/nextcloud.log)

Nextcloud log ``` Sabre\DAV\Exception\InsufficientStorage: /home/wwwroot/cloud.example.com/apps/dav/lib/Connector/Sabre/QuotaPlugin.php - line 139: OCA\DAV\Connector\Sabre\QuotaPlugin->checkQuota('/', 4046489169) [internal function] OCA\DAV\Connector\Sabre\QuotaPlugin->beforeMove('uploads/user...', 'files/user/h...') /home/wwwroot/cloud.example.com/3rdparty/sabre/event/lib/EventEmitterTrait.php - line 105: call_user_func_array(Array, Array) /home/wwwroot/cloud.example.com/3rdparty/sabre/dav/lib/DAV/CorePlugin.php - line 633: Sabre\Event\EventEmitter->emit('beforeMove', Array) [internal function] Sabre\DAV\CorePlugin->httpMove(Object(Sabre\HTTP\Request), Object(Sabre\HTTP\Response)) /home/wwwroot/cloud.example.com/3rdparty/sabre/event/lib/EventEmitterTrait.php - line 105: call_user_func_array(Array, Array) /home/wwwroot/cloud.example.com/3rdparty/sabre/dav/lib/DAV/Server.php - line 479: Sabre\Event\EventEmitter->emit('method MOVE', Array) /home/wwwroot/cloud.example.com/3rdparty/sabre/dav/lib/DAV/Server.php - line 254: Sabre\DAV\Server->invokeMethod(Object(Sabre\HTTP\Request), Object(Sabre\HTTP\Response)) /home/wwwroot/cloud.example.com/apps/dav/lib/Server.php - line 283: Sabre\DAV\Server->exec() /home/wwwroot/cloud.example.com/apps/dav/appinfo/v2/remote.php - line 35: OCA\DAV\Server->exec() /home/wwwroot/cloud.example.com/remote.php - line 164: require_once('/home/wwwroot/c...') {main} ```
MorrisJobke commented 6 years ago

i found these chunks have finished uploading. but they can't merge into one file. and in my user folder, there are a large number of .part files, and generated over and over again, until they can't be stored. i had 50 GB disk before, and now 0.

We identified, that the client tries parallel upload (which is fine) and parallel assembly (which is not fine) and thus created a fix for this: #9355

Could you test again with the upcoming 13.0.3 and check if the problem still persists?

I will close this ticket for now.