Untrusted device never finishes syncing, very high memory usage

You can try using my sed patterns, although please compare the output and the original to verify that it hasn’t “anonymised” too much in the process, including the actual useful information :wink:.

/"[^"]*"/ s//"xxx"/g
/(open|remove).*:/ s//\1 xxx:/g
/(([A-Z]|[0-9])+)-([A-Z]|[0-9])+-([A-Z]|[0-9])+-([A-Z]|[0-9])+-([A-Z]|[0-9])+-([A-Z]|[0-9])+-([A-Z]|[0-9])+-([A-Z]|[0-9])+/ s//\1/g

If you are unfamiliar with sed, just save them to a text file (e.g. sed.txt), and then run sed --file="sed.txt" --regex-extended "syncthing.log".

@cyplo Are any of the devices involved “very old”, as in Syncthing instances which are installed since a long time?

I have a theory: We have FileInfo.RawBlockSize and on .Blocksize() return that if > 0, otherwise protocol.MinBlockSize. When encryption the FileInfo, we set RawBlockSize on the encrypted FileInfo to fi.RawBlockSize + blockOverhead, where fi is the original FileInfo.

Nowadays we should always set RawBlockSize, that’s why I am interested whether the file infos might predate variable block sizes. If they aren’t old, we either miss setting RawBlockSize somewhere or my theory is wrong/incomplete.

PR confirming and fixing the issue with RawBlockSize: lib/protocol: Ensure correct blocksize on enc. fileinfo (ref #7861) by imsodin · Pull Request #7870 · syncthing/syncthing · GitHub

Most of the devices I’ve reinstalled the OS within the last year, but one Ubuntu laptop and one Android phone can be running same setup, with subsequent syncthing upgrades over the last 3-5 years maybe ?

The device experiencing the problem is quite fresh, so is the only device it is connected to though, only the devices that are in the same synch group but are not synching directly to the problematic device are older.

(also, I might be slower to respond this week as I’m moving house)

1 Like

I tried it, but it didn’t work for me. I then wiped the untrusted device completely, but the trusted devices I ran this experiment with are still running within the current synch group.

Yes, as long as I understand what I’m running there, e.g. compiled it from source myself and I can inspect the diff between 1.18 and that version, if that makes sense ?

In that case I am still happy with my hypothesis :slight_smile:

Next weeks RC will have the fixes mentioned above.

3 Likes

Should I then test the RC when it’s out, send any more info in the meantime , anything else ?

No more info required from my side. And yes, you can use the RC to fix your problem. Could have mentioned before: If you’d want to try immediately, you could use nightly builds: Versions & Releases — Syncthing v1 documentation

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.