How to resolve cells sync errors + conflicts?

Some time ago we migrated from Pydio 8 to Pydio Cells (currently 3.0.3).
Due to the Let’s Encrypt DST Root CA X3 expiration issue the Pydio Sync stopped working for us and we were forced to migrate. This took quite a while, with the result that we “synced” our files manually (by downloading/uploading via web) in that time.
It turned out that our manual sync approach was not very error prone, so we ended up with some conflicts.

We see “conflict on path”, “errors detected while validating patch”, “diff has conflicts [conflict on path]” errors with “Create folder”, “Move folder”, “Transfer File” as “Operations”:


We also would like to avoid syncing “recycle_bin” and the like, but this does not seem to be implemented yet (see: Ignore files/folders + Add support to ignore files/folder · Issue #36 · pydio/cells-sync · GitHub).

We also see “rpc error: code = Internal desc = server closed the stream without sending trailers” which seem to correspond to the following error in the log file:

2021-12-28T23:01:28.204+0100    ERROR   endpoint.cells.remote   Stopping watcher on errorrpc error: code = DeadlineExceeded desc = context deadline exceeded

We also see a zillion CONSOLE LOG false undefined error lines in the log (see: ERROR systray ... CONSOLE LOG [object Object] · Issue #42 · pydio/cells-sync · GitHub):

2021-12-30T12:22:23.498+0100    ERROR   systray http://localhost:3636/static/js/main.6aac3b50.chunk.js?__WB_REVISION__=7d6d77508e11a968d34e:1:59308: CONSOLE LOG false undefined 3 4
2021-12-30T12:22:23.499+0100    ERROR   systray http://localhost:3636/static/js/main.6aac3b50.chunk.js?__WB_REVISION__=7d6d77508e11a968d34e:1:59308: CONSOLE LOG true undefined 1 0
2021-12-30T12:22:23.499+0100    ERROR   systray http://localhost:3636/static/js/main.6aac3b50.chunk.js?__WB_REVISION__=7d6d77508e11a968d34e:1:59308: CONSOLE LOG false undefined 0 1
2021-12-30T12:22:23.499+0100    ERROR   systray http://localhost:3636/static/js/main.6aac3b50.chunk.js?__WB_REVISION__=7d6d77508e11a968d34e:1:59308: CONSOLE LOG false undefined 1 2
2021-12-30T12:22:23.500+0100    ERROR   systray http://localhost:3636/static/js/main.6aac3b50.chunk.js?__WB_REVISION__=7d6d77508e11a968d34e:1:59308: CONSOLE LOG false undefined 1 2
2021-12-30T12:22:23.500+0100    ERROR   systray http://localhost:3636/static/js/main.6aac3b50.chunk.js?__WB_REVISION__=7d6d77508e11a968d34e:1:59308: CONSOLE LOG false undefined 1 2

(If this is something completely different / off-topic, I can create a separate topic on this.)

Anyway, what is the correct way to resolve such sync conflicts / problems? Thanks for your help.

Hello @dpat
Sorry for the late answer. Covid is hitting the team :slight_smile:
Regarding these conflicts, are you able to describe the actual differences between the remote and the local trees? It would be interesting to better understand the case.

I hope you are all doing fine.

We still believe there are lot of inconsistencies and we are still not in “production mode” yet and after the time went by it is quite hard to recover all the details.

But lets take a look at this screenshot for example:

The specific error is now not shown anymore and I do not know why, but the files are now in place (maybe I fixed it manually).

But AFAIR at that time the situation looked like this:

Pydio Cells Server - all files did exist in that folder
Client A - all files did exist in that folder → Start CellsSync
Client B - all files except the listed files existed in that folder → Start CellsSync

We do not know why the files were missing on Client B (we believe the old Pydio Sync never downloaded them, but we weren’t aware of the difference), but the folders did not contain the same number of files when starting CellsSync.

So this error was only shown on Client B and the only way to fix it was to download the files via the Webfrontend or manually copy the files from Client A.

In the meanwhile we found a bunch of other files and folders which are missing but sync errors are not shown. Errors seem only to been shown if we touch a file in a folder which is already inconsistent.

Is there a way to to force a complete “recheck” and find inconsistent folders? “Resync all” does not do the trick, it seems.

Did you try “Full Resync” in the More button of the sync task ?
See screen below

Capture d’écran 2022-01-27 à 15.43.43

Not yet. Does it do something different than the “Resync all” (when right-clicking on the Cells Tray Icon)?

Yes it does. It resync remote and local trees from scratch.

Ok. I was brave and tried it. And indeed this brings up the error “diff has conflicts [conflict on path ]” again and also lists all the folders and files with “differences”.

But what to do next? How can we upload and download all missing files?

Humm… Can you first try to understand what “conflicts” are detected? If you check some folders/files of the error list, do you actually see any differences between local and remote ?

@charles
The task was quite difficult, because we did not know which sync strategy was going to kick in.
For instance, we had these kinds of problems:

  • we had local folders with missing files on the client (here the strategy would be easy: download only)
  • we had files with different content (“real” conflicts, here the strategy would be: check each file on each endpoint (server + clients) and decide which version is correct).

Our first concern was: what could we expect when running “full sync”? What will happen to the conflicts? Will everything on Client X considered “correct” or everything from the server? It turned out “full sync” was quite conservative and just brought up the list of conflicts. Fine.

We later found (in More actions → Parameters of the task) that we could change “Bi-directional” to “Mirror (download only)” or “Backup (upload only)”

Side note: I would consider “Bi-directional” as “Mirror”. (i.e. Robocopy also uses that terminology too, see: https://social.technet.microsoft.com/wiki/contents/articles/1073.robocopy-and-a-few-examples.aspx#Mirror_directories)

Anyway, our next concern was: what does “Download only” and “Backup only” actually do? Will it overwrite data? So we did not try these options because we did not know if everything on the server was “golden”, nor did we know if the data (which data) on the client was (not) up-to-date.

What we need is a way to individually resolve a conflict (on file level). So the actual question still is: how to resolve individual conflicts? Any tips?