Android arm64, version 0.14.19 loses connection and breaks sync

I tested on my LG G4 (Android 7). And I can reproduce this. Syncing from my laptop (x86) to my phone (Arm64), nothing is transfered, and the Android side always shows 0 bytes folder size.

ping @calmh @AudriusButkevicius

I can confirm this problem (Android 6, Glaxy S7). In log the same as Jon’s one. Tried to reinstall app, reboot, rebuild db, change files at both side, recreate dirs, change direct connection to relay… No chance… One side see all files, no files at other side.

In addition to… I can’t share folder from phone to PC, request not appeared, only device connection request. Device connection request, folder share request received by phone without any problem.

The only thing that I can suspect to be to blame is the new rate handling code, yet I won’t be able to test it for a while.

I don’t have rate limits set and all devices are in the same network. Shouldn’t that short circuit the rate limiter, so it isn’t used at all and even if it doesn’t work correctly with AArch64, it shouldn’t matter?

Can someonewho is having the isue set up a rate limit of lets say 10mb on both sides for both send and receive and see if that makes it better?

Well very little changed in the last release all together, so if it anything it’s either the Arm64 stuff or the rate limiting.

Seems like specific to (64 bit?) Android so far?

Yes, it’s only on 64Bit Android. My Nexus 5 uses the ARM binary and has no problems. On 64Bit devices, it uses “Linux (AArch64)” and has the problems.

@AudriusButkevicius you are right. It seems to be the limiter. If I enable limitBandwidthInLan in the advanced settings and set the limit in both directions to 102400 (100MB/s) on the phone, it starts to sync. I didn’t set a limit on the other devices.

Nexus 6P now flawlessly synced in super speed with my pc; rate limit 102400 enabled for both sides. 22 GB in about 4 minutes over a 24 MBit/s wifi connection.

… how can that bug be specific to 64 bit Android? Is there build weirdness going on?

Here’s the commit, only differences to ARMv5 are GOARCH and GOARM.

Is the behavior the same with https://github.com/syncthing/syncthing/releases/download/v0.14.19/syncthing-linux-arm64-v0.14.19.tar.gz from Github? It seems odd that we would have an issue with arm64 but not amd64.

I also don’t have rate settings enabled but if I try to set a limit on the Nexus 6P it crashes the app every time, tried different rates same effect.

That seems to be the opposite problem of everyone else, though.

v0.14.19 “Linux (AMD64)” has no problems like this. I use it on my server and desktop since it was released.

@keep_flying did you try to set the rate limit in the android wrapper or the web ui. As you probably also have to enable the advanced setting, you need to use the web ui anyway.

Yeah. Since AMD64 seems sane, I’m wondering if our ARM64 build is good or bad. If bad, I guess something in the ARM64 build of the rate limiting package is bad. If good, I expect it’s something in the Android build process that breaks it. I think it’s possible to replace the libsyncthing.so file in the app with the Syncthing binary from our download linked above.

Something non-Android ARM64 would be interesting too, I guess.

You need to have root to replace the binary, which I don’t have. No 64Bit ARM device here either (the RPi2 was still 32Bit).

There is another thread with complaints about RPI3 which is arm64

Can confirm version 16 is still working fine on my Note 10.1 I get the same problem trying to set a rate limit on the note, immediately crashes.