haiwen / seafdav

Seafile webdav server

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

WEBdav having issues moving files on server

NOPage opened this issue · comments

I am having problems with webDAV since having upgraded to 6.0.3. Im am using the webdav feature with nginx as a webserver. Prior to upgrading, I was perfectly happy with syncing my files from phone via foldersync.

Now FolderSync gives me an error:

file transfer failed: FILE
attempt to read from field java.lang.strict.dk.tacit.android.providers.file.providerfile.displaypath on a null     object reference

From seavdav.error.log:

File "/home/seafile/seafile/seafile-server-6.0.3/seahub/thirdpart/wsgidav/request_server.py", line 902, in      _copyOrMove
srcRes, HTTP_NO_CONTENT, errorList)
File "/home/seafile/seafile/seafile-server-6.0.3/seahub/thirdpart/wsgidav/request_server.py", line 146,    in  _sendResponse
return util.sendStatusResponse(environ, start_response, errorList[0][1])
File "/home/seafile/seafile/seafile-server-6.0.3/seahub/thirdpart/wsgidav/util.py", line 758, in  sendStatusResponse
assert type(body) is str # If not, Content-Length is wrong!
AssertionError" while reading response header from upstream, client: 10.0.0.1, server: XXX.XXX.net,   request:   "MOVE /seafdav/FOLDER/FILE/2
2016/09/17 20:16:19 [error] 9495#0: *178168 FastCGI sent in stderr: "" while reading response header   from  upstream, client: 10.0.0.1, server: XXX.XXX.net, request: "MOVE /seafdav/seafdav/FILE/XY

It seems as if the problem is only with moving/deleting the file after is has been uploaded. The upload itself works fine. In my case, FolderSync creates a tempfile:

file.tacitpart

and moves it when the upload is complete to

file

Since I disabled the tempfile creation in FolderSync settings, the file uploads just fine.

issue fixed in 6.0.4

Sorry, but this bug is still present in seafile-server-7.0.4
Disabling tempfile creation in FolderSync didn't help.

commented

This most probably depends on the speed of the server.

Most probably the server already confirms the upload after the file has been received, but after receiving the file is being indexed within a background job and is not available before the operation has been finished, thus another operation immediately after uploading a file can fail.

Especially for larger files high timeouts are required on the server side to not let an upload fail completely. When tempfile creation is not enabled it does not seem to be the same issue than above, because no move operation should be performed (and thus no move operation can fail).

Looks like I'm having the same issue:
https://forum.seafile.com/t/seafdav-not-completely-working-after-server-migration/11460

@chuegel have you been able to solve it?