Webdav File Upload – Failures Over 10kB on Specific Machines

webdav

I am using an owncloud 10.0.10 server hosted in a virtual machine (vm-A) I have no access to. I can connect to it using webdav from both my home PC and a virtual machine from a paid provider that I administer (vm-B). Everything works smoothly (reading/writing files). I was recently given access to a third virtual machine from my job (vm-C). When setting up webdav access from vm-C to the webdav server in vm-A I can browse the share but writing to the share is broken – it only works for very small files (<10kB). This happens with both davfs2 and rclone.
I am confused because both vm-B (working) and vm-C (broken) are set up by me and they are both Debian stable systems (all software used is exactly the same – the configuration files are copied verbatim).
In addition vm-C is only broken when "talking" to vm-A, there is a webdav server on the second machine (vm-B – nextcloud – latest stable release) and vm-C has no problem writing big files to this server using webdav.
When using rclone the logs show:

2022/01/10 21:47:31 DEBUG : PUT /remote.php/dav/files/username/testfile HTTP/1.1
Host: host.url
User-Agent: rclone/v1.53.3-DEV
Content-Length: 40960
Authorization: XXXX
Content-Type: application/octet-stream
Oc-Checksum: SHA1:c90116149196cbf74ffb453ecb3b12945372ebfa
Referer: https://host.url/remote.php/dav/files/username/
X-Oc-Mtime: 1641851243
Accept-Encoding: gzip

2022/01/10 21:47:31 DEBUG : >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2022/01/10 21:47:51 DEBUG : <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
2022/01/10 21:47:51 DEBUG : HTTP RESPONSE (req 0xc000222100)
2022/01/10 21:47:51 DEBUG : Error: read tcp 192.168.193.13:55270->45.61.32.79:443: read: connection reset by peer

2022/01/10 21:53:04 DEBUG : DELETE /remote.php/dav/files/username/testfile HTTP/1.1
2022/01/10 21:53:04 DEBUG : >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2022/01/10 21:53:05 DEBUG : <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
2022/01/10 21:53:05 DEBUG : HTTP RESPONSE (req 0xc00067ba00)
2022/01/10 21:53:05 DEBUG : HTTP/1.1 404 Not Found

The same error message sometimes appears on small files (<10kB) but the upload succeeds on the second or third retry.

Best Answer

After some search on the vm that I had access to (vm-c) I discovered that the two machines that had a problem were in the same local network. It ended up being a router issue with hairpinning. I have no power over the actual router hardware to actually fix the problem. As a workaround, using a proxy server bypasses the problem. In example

$ export https_proxy="http://WORKING_PROXY_SERVER"
$ rclone -vv copy testfile webdav-server:

works.

Related Topic