Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync should continue when a singe failure occurs #7586

Closed
mmattel opened this issue Nov 12, 2019 · 6 comments
Closed

Sync should continue when a singe failure occurs #7586

mmattel opened this issue Nov 12, 2019 · 6 comments

Comments

@mmattel
Copy link
Contributor

mmattel commented Nov 12, 2019

Expected behaviour

Sync should continue

Actual behaviour

When you have a (very) slow backend like a FTP mount with a thin line, syncing stops because of eg. timeouts or the server replied with a error but an empty reply message (red line in sync screen) even there are much more items/mounts to be synced.

Server configuration

Operating system: Ubuntu 18.04

Web server: nginx

Database: mariadb

PHP version: 7.2

ownCloud version: 10.3

Storage backend (external storage): SMB, FTP

Client configuration

Client version: 2.6

Operating system: macOS

OS language: DE

@michaelstingl
Copy link
Contributor

@mmattel Thanks for reporting! Could you post the relevant lines from the client debug log?
https://doc.owncloud.org/desktop/troubleshooting.html#log-files

@mmattel
Copy link
Contributor Author

mmattel commented Nov 12, 2019

Here we go. I neutralized the content regarding sensitive information.
You can have the full .gz log if you provide me a secure upload location.

11-12 19:01:45:385 [ warning sync.networkjob ]:	QNetworkReply::UnknownServerError "Error transferring https://myserver.xyz/remote.php/dav/files/myuser.lastname/myuser@mountname/folder - server replied: " QVariant(int, 504)
11-12 19:01:45:385 [ info sync.networkjob.lscol ]:	LSCOL of QUrl("https://myserver.xyz/remote.php/dav/files/myuser.lastname/myuser@mountname/folder") FINISHED WITH STATUS "UnknownServerError Error transferring https://myserver.xyz/remote.php/dav/files/myuser.lastname/myuser@mountname/folder - server replied: "
11-12 19:01:45:385 [ warning sync.discovery ]:	LSCOL job error "Error transferring https://myserver.xyz/remote.php/dav/files/myuser.lastname/myuser@mountname/folder - server replied: " 504 QNetworkReply::UnknownServerError
11-12 19:01:45:385 [ warning sync.discovery ]:	Server error in directory "myuser@mountname/folder" 504
11-12 19:01:45:388 [ info sync.engine ]:	Sync run took  202947 ms
11-12 19:01:45:388 [ debug sync.localdiscoverytracker ]	[ OCC::LocalDiscoveryTracker::slotSyncFinished ]:	sync failed, keeping last sync's local discovery path list
11-12 19:01:45:388 [ debug sync.networkjob ]	[ OCC::AbstractNetworkJob::slotFinished ]:	Network job OCC::LsColJob finished for "/myuser@mountname/folder"
11-12 19:01:45:388 [ info gui.folder ]:	Client version 2.6.0 (build 12703)  Qt 5.12.5  SSL  OpenSSL 1.1.1d  10 Sep 2019
11-12 19:01:45:388 [ warning gui.folder ]:	SyncEngine finished with ERROR
11-12 19:01:45:388 [ info gui.folder ]:	Folder sync result:  2
11-12 19:01:45:388 [ info gui.folder ]:	the last 1 syncs failed
11-12 19:01:45:390 [ info gui.application ]:	Sync state changed for folder  "https://myserver.xyz/remote.php/dav/files/myuser.lastname/" :  "Error"

If I renove the particular folder /folder from the sync list, sync continues flawless.
Else all other open sync items do not get synced.

@michaelstingl
Copy link
Contributor

@ogoffart Why not continue after a 504? (especially if it's a mounted folder?)

@ogoffart
Copy link
Contributor

Why not continue after a 504? (especially if it's a mounted folder?)

The original code from csync was stopping at any error.
Then we changed the code to ignore the folder in for some error code, one by one, as deemed necessary.
But the code 504 was not seen before and is therefore not ignored.

ogoffart added a commit that referenced this issue Nov 13, 2019
The original code from csync was stopping at any error.
But we have been whitelisting soeme http error code one by one
to ignore the directory instead of aborting the sync.
However, as there are more requests to continue the sync in case
of error, just ignore most HTTP errors

Issue #7586
@ogoffart
Copy link
Contributor

In PR #7588 , i ignore the directory and continue the sync in case of any HTTP error >= 403

ogoffart added a commit that referenced this issue Nov 18, 2019
The original code from csync was stopping at any error.
But we have been whitelisting soeme http error code one by one
to ignore the directory instead of aborting the sync.
However, as there are more requests to continue the sync in case
of error, just ignore most HTTP errors

Issue #7586
@HanaGemela
Copy link
Contributor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants