Skip to content

Auto Upload of large files with server encryption enabled timeout #9052

@bqq100

Description

@bqq100

Steps to reproduce

  1. Enable server side encryption
  2. Auto-upload a large file
  3. If the MOVE operation takes > 60 seconds the app reports an error.

Expected behaviour

  • Upload should complete successfully

Actual behaviour

  • Error in the app and on the server. Error codes/messages vary depending on server configuration. For no reverse proxy and nginx configured with an extended timeout, the app reports "Upload failed... An error occurred while waiting for the server." The server reports a 499 Client Closed Request status code.

Can you reproduce this problem on https://try.nextcloud.com?

  • No, need server side encryption enabled

Environment data

Android version: 10

Device model: Pixel 4A

Stock or customized system: Stock (rooted)

Nextcloud app version: 3.17

Nextcloud server version: 21.0.4

Reverse proxy: None

Web server error log

- [03/Oct/2021:04:17:29 +0000] "MOVE /remote.php/dav/uploads//023a5d7624722d912d18e255330e7f3c/.file HTTP/1.1" 499 0 "-" "Mozilla/5.0 (Android) Nextcloud-android/3.17.0"

Nextcloud log (data/nextcloud.log)

No Errors

NGINX stack trace for slow transaction (I believe I had slowlog timeout set to 15 seconds for this stack trace)

[pool www] pid 2362
script_filename = /var/www/nextcloud/remote.php
[0x00007f8df8017550] hash_hmac() /encryption/lib/Crypto/Crypt.php:520
[0x00007f8df80174d0] createSignature() /encryption/lib/Crypto/Crypt.php:199
[0x00007f8df80173e0] symmetricEncryptFileContent() /encryption/lib/Crypto/Encryption.php:347
[0x00007f8df8017320] encrypt() /var/www/nextcloud/lib/private/Files/Stream/Encryption.php:488
[0x00007f8df8017250] flush() /var/www/nextcloud/lib/private/Files/Stream/Encryption.php:400
[0x00007f8df8017170] stream_write() /var/www/nextcloud/lib/private/legacy/OC_Helper.php:261
[0x00007f8df8017100] fwrite() /var/www/nextcloud/lib/private/legacy/OC_Helper.php:261
[0x00007f8df8017030] streamCopy() /var/www/nextcloud/lib/private/Files/Storage/Wrapper/Encryption.php:1036
[0x00007f8df8016f60] writeStream() /var/www/nextcloud/lib/private/Files/Storage/Wrapper/Wrapper.php:629
[0x00007f8df8016e80] writeStream() /dav/lib/Connector/Sabre/File.php:207
[0x00007f8df8016c70] put() /dav/lib/Connector/Sabre/Directory.php:156
[0x00007f8df8016b60] createFile() /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Tree.php:305
[0x00007f8df8016a60] copyNode() /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Tree.php:133
[0x00007f8df8016990] copy() /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Tree.php:163
[0x00007f8df80168a0] move() /dav/lib/Upload/ChunkingPlugin.php:95
[0x00007f8df80167d0] performMove() /dav/lib/Upload/ChunkingPlugin.php:77
[0x00007f8df80166e0] beforeMove() /var/www/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php:89
[0x00007f8df8016600] emit() /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/CorePlugin.php:603
[0x00007f8df8016530] httpMove() /var/www/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php:89
[0x00007f8df8016450] emit() /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php:472
[0x00007f8df8016390] invokeMethod() /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php:253
[0x00007f8df8016290] start() /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php:321
[0x00007f8df8016240] exec() /dav/lib/Server.php:332
[0x00007f8df80161e0] exec() /dav/appinfo/v2/remote.php:35
[0x00007f8df8016140] INCLUDE_OR_EVAL /var/www/nextcloud/remote.php:167

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions