Timeout with WebDAV access
Nobody has claimed this yet.
- Dominant language
- Swift
- Stars
- 2.5k
- Forks
- 1k
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 13
Description
Expected behaviour
Requests should not time out.
Actual behaviour
Seeing these errors repeatedly in my Apache logs.
[Fri Jun 05 22:15:53 2020] 192.168.1.1 - "PUT /remote.php/webdav/Photos/2020/05/20-05-12%2012-55-24%206460.mov HTTP/2.0" 423 "-" "Mozilla/5.0 (iOS) Nextcloud-iOS/2.25.8" [-] (WebDAV Resource Locked)
[Fri Jun 05 22:15:56 2020] 192.168.1.1 - "PUT /remote.php/webdav/Photos/2020/05/20-05-12%2012-55-24%206460.mov HTTP/2.0" 423 "-" "Mozilla/5.0 (iOS) Nextcloud-iOS/2.25.8" [-]
[Fri Jun 05 22:16:00 2020] 192.168.1.1 - "PUT /remote.php/webdav/Photos/2020/05/20-05-12%2012-55-24%206460.mov HTTP/2.0" 423 "-" "Mozilla/5.0 (iOS) Nextcloud-iOS/2.25.8" [-]
[Fri Jun 05 22:16:10 2020] 192.168.1.1 - "PUT /remote.php/webdav/Photos/2020/05/20-05-12%2012-55-24%206460.mov HTTP/2.0" 423 "-" "Mozilla/5.0 (iOS) Nextcloud-iOS/2.25.8" [-]
[Fri Jun 05 22:16:26 2020] 192.168.1.1 - "PUT /remote.php/webdav/Photos/2020/05/20-05-12%2012-55-24%206460.mov HTTP/2.0" 423 "-" "Mozilla/5.0 (iOS) Nextcloud-iOS/2.25.8" [-]
[Fri Jun 05 22:17:13 2020] 192.168.1.1 - "PUT /remote.php/webdav/Photos/2020/05/20-05-12%2012-55-24%206460.mov HTTP/2.0" 423 "-" "Mozilla/5.0 (iOS) Nextcloud-iOS/2.25.8" [-]
[Fri Jun 05 22:18:55 2020] 192.168.1.1 - "PUT /remote.php/webdav/Photos/2020/05/20-05-12%2012-55-24%206460.mov HTTP/2.0" 423 "-" "Mozilla/5.0 (iOS) Nextcloud-iOS/2.25.8" [-]
[Fri Jun 05 22:15:21 2020] 192.168.1.1 - "PUT /remote.php/webdav/Photos/2020/05/20-05-12%2012-55-24%206460.mov HTTP/2.0" 408 "-" "Mozilla/5.0 (iOS) Nextcloud-iOS/2.25.8" [Xtr8OZFmVWCgPJ9YUsrAqQAAAAE] (Request Timeout)
[Fri Jun 05 22:21:23 2020] [client 192.168.1.1:60784] [proxy_fcgi:error] (70007)The timeout specified has expired: AH01075: Error dispatching request to : (reading input brigade) [Xtr8OZFmVWCgPJ9YUsrAqQAAAAE]
[Fri Jun 05 22:22:49 2020] 192.168.1.1 - "PUT /remote.php/webdav/Photos/2020/05/20-05-12%2012-55-24%206460.mov HTTP/2.0" 201 "-" "Mozilla/5.0 (iOS) Nextcloud-iOS/2.25.8" [-]
The initial request times out and I cannot figure out why. Note that the times appear out of order in the log. The 408 error must be from the initial request that took place. After 6 minutes it fails but in the meantime lots of attempts are made that result in the locked file 423.
The proxy_fcgi:error timeout happens when my TimeOut 360 in the Apache Virtual Host block is reached. I have been raising this value but it only seems to affect how long before the proxy_fcgi:error gets thrown. The initial request is always met with a 408 error. Since this value is already at 6 minutes I don't really think it wise to raise it much farther, especially since it doesn't affect the initial problem. I also checked into the file sizes that are being sent in the PUT request and they are not very large (around 170 mb). The wireless network is not slow.
Steps to reproduce
Reasoning or why should it be changed/implemented?
iOS version
13.4.1 on iPhone SE
App version
2.25.9.2
Server configuration
<?php
$CONFIG = array (
'passwordsalt' => 'xxxxxxxxxxxxxxxxxxx',
'secret' => 'xxxxxxxxxxxxxxx',
'trusted_domains' =>
array (
0 => 'localhost',
1 => 'www.mywebsite.com',
),
'datadirectory' => '/mydata/data',
'dbtype' => 'mysql',
'version' => '18.0.5.1',
'overwrite.cli.url' => 'https://www.mywebsite.com',
'dbname' => 'nextcloud',
'dbhost' => 'localhost:/var/run/mysqld/mysqld.sock',
'dbtableprefix' => 'oc_',
'mysql.utf8mb4' => true,
'dbuser' => 'oc_user',
'dbpassword' => 'xxxxxxxxxxxxxxxxxxxx',
'installed' => true,
'instanceid' => 'xxxxxxxxxxx',
'maintenance' => false,
'mail_smtpmode' => 'sendmail',
'htaccess.RewriteBase' => '/',
'logfile' => '/var/log/nextcloud/nextcloud.log',
'logtimezone' => 'xxxxxxxxxxxxxxxxxx',
'memcache.local' => '\\OC\\Memcache\\APCu',
'memcache.distributed' => '\\OC\\Memcache\\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' =>
array (
'host' => '/var/run/redis/redis-server.sock',
'port' => 0,
'dbindex' => 0,
'timeout' => 0.0,
'password' => 'xxxxxxxxxxxxxxxxxxxxxxx',
),
'enable_avatars' => true,
'loglevel' => 2,
'theme' => '',
'mail_from_address' => 'admin',
'mail_sendmailmode' => 'smtp',
'mail_domain' => 'mywebsite.com',
'updater.release.channel' => 'stable',
'updater.secret' => 'xxxxxxxxxxxxxxxxxxx',
);
Operating system:
OS: Ubuntu 18.04.4 LTS (bionic)
Kernel: 4.15.0-101-generic
Web server:
Apache: 2.4.29
OpenSSL: 1.1.1
Database:
MariaDB: 10.1.44
PHP version:
PHP: 7.2.24
Using php-fpm
Nextcloud version: (see Nextcloud admin page)
Nextcloud: 18.0.5
Antivirus for files 2.4.1
Brute-force settings 1.6.0
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the iOS WebDAV upload flow and compare it with the Apache and proxy_fcgi log entries for the PUT request. Reproduce using the listed iOS, Nextcloud, Apache, PHP, Ubuntu, and MariaDB versions; done means the initial upload completes without the 408 timeout and repeated 423 locks.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- apache, ios, mariadb, php, ubuntu
- Domain
- backend, mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100