syncthing / syncthing-android

Wrapper of syncthing for Android.
https://syncthing.net/
Mozilla Public License 2.0
3.61k stars 406 forks source link

Syncthing loading forever (Android 5.0) #2029

Open MaxBQb opened 11 months ago

MaxBQb commented 11 months ago

I've recently noticed, that syncthing is always "Syncthing is starting", instead of actually do something useful, so I force-closed the app and re-open it, but GUI only shows Loading... and ignores any interactions. In 1.27.0 it also suggests to see logs after a while, but logs contains only one line "begin of main" (so only adb logcat here). In 1.27.1 it just stays empty, ignoring all clicks (can't open side panel, or add something) This bug also happens at least on one version below 1.27.0, and I can't say when it started (because of google play auto updates).

Android version 5.0 (Lollipop) API 21 I've used this app before without any problems. Then something has changed (auto update also may happen). UPD: Changes between 1.23.7 -> 1.24.0-rc

Version Information

App Version: 1.27.1
Syncthing Version: v1.27.1-rc.1
Android Version: Android 5.0

image

tomasz1986 commented 11 months ago

Have you tried uninstalling and reinstalling the app? Please be aware that doing so will wipe out all your Syncthing configuration though.

imsodin commented 11 months ago

And adb logcat might reveal relevant logs that the UI can't/doesn't display.

MaxBQb commented 11 months ago

I did not uninstall/reinstall syncthing (I can do it, if needed, but this also make that bug hard to reproduce, so I'm currently waiting and collecting as much information as I can)

Here is logs from logcat exported: samsung-SM-N900V-Android-5_2023-12-20_225019.zip

MaxBQb commented 11 months ago
Also now there is android log available in syncthing (not sure if it's informative): ``` --------- beginning of main 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1303b0, entry index(944) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f130371, entry index(881) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f13031b, entry index(795) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f13031c, entry index(796) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f13031d, entry index(797) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f13031f, entry index(799) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1302f7, entry index(759) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f130324, entry index(804) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f130372, entry index(882) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1301e8, entry index(488) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1301fc, entry index(508) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1301fd, entry index(509) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1301b1, entry index(433) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f13019a, entry index(410) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f13019b, entry index(411) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f130328, entry index(808) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1303d1, entry index(977) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f0800fe, entry index(254) is beyond type entryCount(252) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f13028e, entry index(654) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f130336, entry index(822) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f130336, entry index(822) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1302e2, entry index(738) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1302e4, entry index(740) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1302e3, entry index(739) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1302ba, entry index(698) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f130323, entry index(803) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1301a3, entry index(419) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1302e6, entry index(742) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f130337, entry index(823) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1302ba, entry index(698) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1302e7, entry index(743) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1303b3, entry index(947) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1302e9, entry index(745) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f13026f, entry index(623) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1302ea, entry index(746) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f130350, entry index(848) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f130351, entry index(849) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f130351, entry index(849) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f130351, entry index(849) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f130351, entry index(849) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1302f1, entry index(753) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f13036f, entry index(879) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f130276, entry index(630) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f130313, entry index(787) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1302f8, entry index(760) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1302f9, entry index(761) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f130310, entry index(784) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1303b2, entry index(946) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f130202, entry index(514) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1303b0, entry index(944) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f130371, entry index(881) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f13031b, entry index(795) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f13031c, entry index(796) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f13031d, entry index(797) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f13031f, entry index(799) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1302f7, entry index(759) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f130324, entry index(804) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f130372, entry index(882) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1301e8, entry index(488) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1301fc, entry index(508) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1301fd, entry index(509) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1301b1, entry index(433) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f13019a, entry index(410) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f13019b, entry index(411) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f130328, entry index(808) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1303d1, entry index(977) is beyond type entryCount(211) 12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f0800fe, entry index(254) is beyond type entryCount(252) 12-20 23:09:00.743 W/ResourceType( 1915): For resource 0x7f1201ea, entry index(490) is beyond type entryCount(420) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f13028e, entry index(654) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f130336, entry index(822) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f130336, entry index(822) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f1302e2, entry index(738) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f1302e4, entry index(740) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f1302e3, entry index(739) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f1302ba, entry index(698) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f130323, entry index(803) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f1301a3, entry index(419) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f1302e6, entry index(742) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f130337, entry index(823) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f1302ba, entry index(698) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f1302e7, entry index(743) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f1303b3, entry index(947) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f1302e9, entry index(745) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f13026f, entry index(623) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f1302ea, entry index(746) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f130350, entry index(848) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f130351, entry index(849) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f130351, entry index(849) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f130351, entry index(849) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f130351, entry index(849) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f1302f1, entry index(753) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f13036f, entry index(879) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f130276, entry index(630) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f130313, entry index(787) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f1302f8, entry index(760) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f1302f9, entry index(761) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f130310, entry index(784) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f1303b2, entry index(946) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f130202, entry index(514) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f1303b0, entry index(944) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f130371, entry index(881) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f13031b, entry index(795) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f13031c, entry index(796) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f13031d, entry index(797) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f13031f, entry index(799) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f1302f7, entry index(759) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f130324, entry index(804) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f130372, entry index(882) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f1301e8, entry index(488) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f1301fc, entry index(508) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f1301fd, entry index(509) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f1301b1, entry index(433) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f13019a, entry index(410) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f13019b, entry index(411) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f130328, entry index(808) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f1303d1, entry index(977) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f0800fe, entry index(254) is beyond type entryCount(252) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:09:00.753 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f13028e, entry index(654) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130336, entry index(822) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130336, entry index(822) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302e2, entry index(738) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302e4, entry index(740) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302e3, entry index(739) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302ba, entry index(698) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130323, entry index(803) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301a3, entry index(419) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302e6, entry index(742) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130337, entry index(823) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302ba, entry index(698) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302e7, entry index(743) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1303b3, entry index(947) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302e9, entry index(745) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f13026f, entry index(623) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302ea, entry index(746) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130350, entry index(848) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130351, entry index(849) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130351, entry index(849) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130351, entry index(849) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130351, entry index(849) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302f1, entry index(753) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f13036f, entry index(879) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130276, entry index(630) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130313, entry index(787) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302f8, entry index(760) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302f9, entry index(761) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130310, entry index(784) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1303b2, entry index(946) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130202, entry index(514) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1303b0, entry index(944) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130371, entry index(881) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f13031b, entry index(795) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f13031c, entry index(796) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f13031d, entry index(797) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f13031f, entry index(799) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302f7, entry index(759) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130324, entry index(804) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130372, entry index(882) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301e8, entry index(488) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301fc, entry index(508) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301fd, entry index(509) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301b1, entry index(433) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f13019a, entry index(410) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f13019b, entry index(411) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130328, entry index(808) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1303d1, entry index(977) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f0800fe, entry index(254) is beyond type entryCount(252) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f13028e, entry index(654) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130336, entry index(822) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130336, entry index(822) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302e2, entry index(738) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302e4, entry index(740) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302e3, entry index(739) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302ba, entry index(698) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130323, entry index(803) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301a3, entry index(419) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302e6, entry index(742) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130337, entry index(823) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302ba, entry index(698) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302e7, entry index(743) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1303b3, entry index(947) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302e9, entry index(745) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f13026f, entry index(623) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302ea, entry index(746) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130350, entry index(848) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130351, entry index(849) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130351, entry index(849) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130351, entry index(849) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130351, entry index(849) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302f1, entry index(753) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f13036f, entry index(879) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130276, entry index(630) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130313, entry index(787) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302f8, entry index(760) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302f9, entry index(761) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130310, entry index(784) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1303b2, entry index(946) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130202, entry index(514) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1303b0, entry index(944) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130371, entry index(881) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f13031b, entry index(795) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f13031c, entry index(796) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f13031d, entry index(797) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f13031f, entry index(799) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302f7, entry index(759) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130324, entry index(804) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130372, entry index(882) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301e8, entry index(488) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301fc, entry index(508) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301fd, entry index(509) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301b1, entry index(433) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f13019a, entry index(410) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f13019b, entry index(411) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130328, entry index(808) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1303d1, entry index(977) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f0800fe, entry index(254) is beyond type entryCount(252) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f13028e, entry index(654) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130336, entry index(822) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130336, entry index(822) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302e2, entry index(738) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302e4, entry index(740) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302e3, entry index(739) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302ba, entry index(698) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130323, entry index(803) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301a3, entry index(419) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302e6, entry index(742) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130337, entry index(823) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302ba, entry index(698) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302e7, entry index(743) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1303b3, entry index(947) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302e9, entry index(745) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f13026f, entry index(623) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302ea, entry index(746) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130350, entry index(848) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130351, entry index(849) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130351, entry index(849) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130351, entry index(849) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130351, entry index(849) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302f1, entry index(753) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f13036f, entry index(879) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130276, entry index(630) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130313, entry index(787) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302f8, entry index(760) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302f9, entry index(761) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130310, entry index(784) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1303b2, entry index(946) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130202, entry index(514) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1303b0, entry index(944) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130371, entry index(881) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f13031b, entry index(795) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f13031c, entry index(796) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f13031d, entry index(797) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f13031f, entry index(799) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1302f7, entry index(759) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130324, entry index(804) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f130372, entry index(882) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301e8, entry index(488) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301fc, entry index(508) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301fd, entry index(509) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f1301b1, entry index(433) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f13019a, entry index(410) is beyond type entryCount(211) 12-20 23:09:00.763 W/ResourceType( 1915): For resource 0x7f13019b, entry index(411) is beyond type entryCount(211) 12-20 23:09:00.773 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211) 12-20 23:09:00.773 W/ResourceType( 1915): For resource 0x7f130328, entry index(808) is beyond type entryCount(211) 12-20 23:09:00.773 W/ResourceType( 1915): For resource 0x7f1303d1, entry index(977) is beyond type entryCount(211) 12-20 23:09:00.773 W/ResourceType( 1915): For resource 0x7f0800fe, entry index(254) is beyond type entryCount(252) 12-20 23:09:00.873 E/ViewRootImpl( 1915): sendUserActionEvent() mView == null ```
MaxBQb commented 11 months ago

While I was messing with Wi-Fi connection (switching On and Off), airplane mode, killing syncthing app and connecting adb, app got actually fixed (until next launch), so during one of such healthy-app moments I've exported my configuration. Note that I can't really say under what conditions app becomes temporarily available, and I've failed to get it work somehow predictably :( So... now with config backup I've reinstalled app and now I have same bug and also no configuration at all.

MaxBQb commented 11 months ago

After doing some quick research with earlier releases testing (binary search saved my day) I can say that v1.23.7 works just fine, while v1.24.0-rc.1 contains that bug which prevents syncthing from normally starting. So it's here somewhere :)

tomasz1986 commented 11 months ago

Are you able to verify whether Syncthing itself is actually running? You can do that by opening http://127.0.0.1:8384 in a Web browser on the phone. It it is running, then the problem is about the app, and out of the commits listed above, https://github.com/syncthing/syncthing-android/commit/a088701d51136785bd13451691ba36ea774c25a4 seems like the only one that could have broken something, potentially regarding Android 5 compatiblity.

MaxBQb commented 11 months ago

First of all, I noticed that syncthing in constant starting while files I need to be up-to-date stay untouched for a while, so I think it doesn't work. For now I temporarily use 1.23.7. Is that information enough or should I reinstall broken version to confirm syncthing alone doesn't even get started?

SerVB commented 11 months ago

Hi, same for me: I've just updated Syncthing to 1.27.1.1 (it was an auto-update, I just don't often enable Wi-Fi on my device, so I don't know which version was installed before, but it worked fine before the update – ah, those auto-updates, as often you notice them when something bad happens 😅).

I have a similar log as reported above (https://github.com/syncthing/syncthing-android/issues/2029#issuecomment-1865070311), and similar behavior of infinite "starting" status.

I have Android 5.1.1.

http://127.0.0.1:8384/

Checked, works for me: a page "Syncthing Authentification Required" opens, asking to input login and password. But I guess I can not login: what's the login data? I don't remember setting them in the app...

However, it seems that under the hood, the sync happens: my other device sees it, and after I add or remove files, that changes are synced seemingly well as usual.

So probably it's just a problem in the Android App Wrapper part, while the backend part still works.

If you need more info, feel free to ask me.

Have you tried uninstalling and reinstalling the app? Please be aware that doing so will wipe out all your Syncthing configuration though.

By the way, if I want to downgrade to an older version, is there a way to preserve my configuration?

tomasz1986 commented 11 months ago

Checked, works for me: a page "Syncthing Authentification Required" opens, asking to input login and password. But I guess I can not login: what's the login data? I don't remember setting them in the app...

The username is "syncthing" and the password is the API key. You can get the latter from config.xml if you back your current configuration up using the app settings.

By the way, if I want to downgrade to an older version, is there a way to preserve my configuration?

You can back your settings up from inside the app, and then restore them later. Please keep in mind though that Syncthing's database will still get reset in the process. There are ways to back all the data up (e.g. Neo-Backup) but all of them require root access.

If you need more info, feel free to ask me.

As in the previous postings, if you can find out which version specifically is the last that works and which one is broken, it would be great!

MaxBQb commented 11 months ago

By the way, if I want to downgrade to an older version, is there a way to preserve my configuration?

Turn on airplane mode, so app will show you dialog with Open Settings button, click it, then go back one step, so you now in settings, go to backup Export configuration... Now you can uninstall app, go to 1.23.7 without that noty bug and import configuration.

At least that worked for me.

MaxBQb commented 11 months ago

Hack with airplane mode only needed in case app's UI ain't responding

desbma commented 11 months ago

I am affected by that issue too, I can't use the "airplane mode" hack to export configuration and reinstall, because the item is grayed out in the settings.

EDIT: Despite the UI stuck in "loading" state, the files seem to be properly synchronized in the background.

SerVB commented 10 months ago

I've just had time to return here.

I can't use the "airplane mode" hack to export configuration and reinstall, because the item is grayed out in the settings

I can confirm: same for me.

So the question: is there perhaps any way to make the item active and use it?

Despite the UI stuck in "loading" state, the files seem to be properly synchronized in the background.

Yep, as I've mentioned in https://github.com/syncthing/syncthing-android/issues/2029#issuecomment-1870560859, same for me. So for now I use Syncthing on my Android just without UI 😅

Ratio2 commented 10 months ago

Android 6.0.1, Nexus 5 1.23.7 - ok 1.24.0-rc.1 - infinite gui loading, app reinstall and storage clear data not help

DirkPitt1 commented 10 months ago

Android 6.0 LG G4, app v1.27.2.1 I wanted to try this app, installed, enabled required permissions. The app generated security keys and stuck on "Loading". The http://127.0.0.1:8384/ opens authentication just fine but the app itself is always stuck. I tried to clear data and reinstall but it didn't help.

On Pixel 5 with GrapheneOS it works fine.

imsodin commented 10 months ago

Anyone affected here able and willing to commit to installing an apk debug build to see if the issue persists when I provide one?

There is a change around the time this came up that @tomasz1986 pointed out in https://github.com/syncthing/syncthing-android/issues/2029#issuecomment-1868492689. I could try to revert those changes for android <= 6. I don't see why it would break anything, but it's the only thing that changed so worth a shot (and maybe brake other things in the process, so no promises). However I need someone currently affected to test, otherwise this is futile.

oddfellow commented 10 months ago

On my Android 6.0 Samsung Galaxy S5 plus (kccat6) only the Google Play Store version 1.27.2.1 of Syncthing is affected by this problem, but the F-droid version 1.27.2.1 does run without problems.

imsodin commented 10 months ago

On my Android 6.0 Samsung Galaxy S5 plus (kccat6) only the Google Play Store version 1.27.2.1 of Syncthing is affected by this problem, but the F-droid version 1.27.2.1 does run without problems.

That's extra weird - anyone else able to confirm/deny that?

Also just so it doesn't get lost:

Anyone affected here able and willing to commit to installing an apk debug build to see if the issue persists when I provide one?

tomasz1986 commented 10 months ago

I think I can confirm the issue, but also only on the Play Store version.

This is Samsung Galaxy S5 LTE-A running Samsung's stock Android 6.0.1. Syncthing gets stuck at this:

Both are the same v1.27.2.1 version. The F-Droid app open and runs with zero issues, but the Play Store one fails to start. One difference I can spot when installing the app is that the F-Droid release weights 47 MB, but the Play Store one is a split APK that weights only 17 MB.

The device is rooted, so I can check what exactly gets installed, and this what the Play Store version looks like in the /data/app folder:

Of course, the culprit may be something completely different 🙃.

Ratio2 commented 10 months ago

Android 6.0.1, Nexus 5 1.23.7 - ok 1.24.0-rc.1 - infinite gui loading, app reinstall and storage clear data not help

Seems i found regression https://github.com/syncthing/syncthing-android/commit/3efe3ceefaeb192a54124a5c6ffb52b77ec04199

1.23.7/builder 1.23.7 - ok 1.24.0-rc.1/builder 1.23.7 - ok

1.23.7/builder 1.24.0-rc.1 - fail 1.24.0-rc.1/builder 1.24.0-rc.1 - fail

imsodin commented 10 months ago

Seems i found regression 3efe3ce

1.23.7/builder 1.23.7 - ok 1.24.0-rc.1/builder 1.23.7 - ok

1.23.7/builder 1.24.0-rc.1 - fail 1.24.0-rc.1/builder 1.24.0-rc.1 - fail

Just to be doubly sure: The second version on each line is the version of the builder docker image, right?

That's consistent with f-droid working: They still build with go 1.20.

On the other hand it conflicts with reports above that the web UI is accessible, i.e. syncthing itself is running - the go version impacts syncthing, not the app itself. At least not directly, one thinkable culprit: New hardening/requirements in go's tls std lib that the old androids don't support? I wouldn't have guesses that it uses tls for the API but maybe it does - wont check right now, gotta catch a bit of sun right now and actually should do other stuff. At least there's a somewhat more promising lead than a088701

Ah they joys of trying to make sense of an issue I can't repro myself :)

Ratio2 commented 10 months ago

Just to be doubly sure: The second version on each line is the version of the builder docker image, right?

Yes, that's right, I tried different combinations and the problem occurs in Docker Builder 1.24.0-rc.1. I also tried to build from the main branch, it has go version 1.21.6, the problem is still reproduced. When I first encountered the problem, everything worked for me through the browser, only the application did not load.

tomasz1986 commented 10 months ago

I think the culprit may not be about Go, because I've just tried installing my self-compiled app v1.27.2.1 with Syncthing built with Go v1.21.5, and it loads just fine.

Would logcat from the broken Play Store version be helpful?

tomasz1986 commented 10 months ago

Probably a number of factors just happened, since my other two devices (Android 10 and 14) work without problems:

  1. Android 6
  2. Go 1.21

As you can see from the messages above, the problem only reproduces on older devices.

Yeah, as stated above, I'm doing all the testings under Android 6.0.1. For me, only the Play Store version fails to launch for some reason.

Ratio2 commented 10 months ago

Probably a number of factors just happened, since my other two devices (Android 10 and 14) work without problems:

  1. Android 6
  2. Go 1.21

As you can see from the messages above, the problem only reproduces on older devices.

Yeah, as stated above, I'm doing all the testings under Android 6.0.1. For me, only the Play Store version fails to launch for some reason.

Now I checked the latest version from F-Droid and it works without problems. How are the versions from F-Droid and Play Store different, besides the Go version?

imsodin commented 10 months ago

There are roughly 3 different "kinds" of installations/builds:

F-Droid - they have their own build process, own go and ndk/sdk version.

Our docker build process - that's the apk published on github or that you get when you build locally using our docker builder image.

Google play distribution - they do some magic based on the release we provide to give a "targeted apk for each device" (https://developer.android.com/guide/app-bundle). 1.26.3 was already such a bundle, so I don't see how that's the issue but not impossible - it's a blackbox.

We know f-droid builds work. Play ones did until 1.26.3. Assuming @Ratio2 did local docker based builds, they worked until builder docker image 1.26.3. I think @tomasz1986 does builds without docker images - apparently they keep working regardless of version. That would point to a change in the builder image being the issue. However nothing but the go version changed there, and that's apparently not an issue given builds with newer go work for @tomasz1986 .

As for logs - there are some posted above. Nothing that makes much sense to me. The zipped logs have too many cryptic errors, nothing standing out. And these ones also didn't get me anywhere:

12-20 23:08:57.863 W/ResourceType( 1915): For resource 0x7f1301d7, entry index(471) is beyond type entryCount(211)

So sure have a look at logs, but if you don't see anything that stands out I doubt I can make more sense of them.

Unless I get new info, I don't have any ideas at the moment and am not persuing this further.

tomasz1986 commented 10 months ago

This is about the Go version. I've re-done all my testing, but this time I made sure that I cleared all cache and prebuilt binaries from the app folder, so that both the app and Syncthing were each time compiled from scratch.

  1. Go 1.20 + app built from https://github.com/syncthing/syncthing-android/tree/release -> works
  2. Go 1.21 + app built from https://github.com/syncthing/syncthing-android/tree/release -> fails to start

We were pointed at https://github.com/syncthing/syncthing-android/compare/1.23.7...1.24.0-rc.1 before, and among those commits, there is https://github.com/syncthing/syncthing-android/commit/3efe3ceefaeb192a54124a5c6ffb52b77ec04199 which is very likely the culprit.

However, what is interesting is that Syncthing itself does start in the background, so the problem is about the connection between the app and Syncthing:

WARNING: linker: /data/app/com.nutomic.syncthingandroid.debug-1/lib/arm/libsyncthing.so: unsupported flags DT_FLAGS_1=0x8000001
INFO: Generating ECDSA key and certificate for syncthing...
INFO: Device ID: N4A46TP
INFO: Default folder created and/or linked to new config
WARNING: linker: /data/app/com.nutomic.syncthingandroid.debug-1/lib/arm/libsyncthing.so: unsupported flags DT_FLAGS_1=0x8000001
[start] INFO: syncthing v1.27.3-rc.2.dev.6.g45beb28f "Gold Grasshopper" (go1.21.6 android-arm) tomasz86@tomasz86 2024-01-23 11:07:58 UTC [noupgrade, stguiassets, sthashing, stnoupgrade]
[N4A46] INFO: My ID: N4A46TP
[N4A46] INFO: Hashing performance is 32.65 MB/s
[N4A46] INFO: Running database migration 1...
[N4A46] INFO: Running database migration 2...
[N4A46] INFO: Running database migration 3...
[N4A46] INFO: Running database migration 5...
[N4A46] INFO: Running database migration 6...
[N4A46] INFO: Running database migration 7...
[N4A46] INFO: Running database migration 9...
[N4A46] INFO: Running database migration 10...
[N4A46] INFO: Running database migration 11...
[N4A46] INFO: Running database migration 13...
[N4A46] INFO: Running database migration 14...
[N4A46] INFO: Running database migration 16...
[N4A46] INFO: Running database migration 17...
[N4A46] INFO: Running database migration 19...
[N4A46] INFO: Compacting database after migration...
[N4A46] INFO: No stored folder metadata for "sm-g906s_jy6q-photos"; recalculating
[N4A46] INFO: Overall send rate is unlimited, receive rate is unlimited
[N4A46] INFO: Ready to synchronize "Camera" (sm-g906s_jy6q-photos) (sendonly)
[N4A46] INFO: Anonymous usage reporting is always enabled for candidate releases.
[N4A46] INFO: Using discovery mechanism: global discovery server https://discovery.syncthing.net/v2/?noannounce&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW
[N4A46] INFO: Using discovery mechanism: global discovery server https://discovery-v4.syncthing.net/v2/?nolookup&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW
[N4A46] INFO: Using discovery mechanism: global discovery server https://discovery-v6.syncthing.net/v2/?nolookup&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW
[N4A46] INFO: Using discovery mechanism: IPv4 local broadcast discovery on port 21027
[N4A46] INFO: Using discovery mechanism: IPv6 local multicast discovery on address [ff12::8384]:21027
[N4A46] INFO: TCP listener ([::]:22000) starting
[N4A46] INFO: Relay listener (dynamic+https://relays.syncthing.net/endpoint) starting
[N4A46] INFO: QUIC listener ([::]:22000) starting
[N4A46] INFO: Loading HTTPS certificate: open /data/user/0/com.nutomic.syncthingandroid.debug/files/https-cert.pem: no such file or directory
[N4A46] INFO: Creating new HTTPS certificate
[N4A46] INFO: GUI and API listening on 127.0.0.1:8384
[N4A46] INFO: Access the GUI via the following URL: https://127.0.0.1:8384/
[N4A46] INFO: My name is "SM-G906S"
[N4A46] INFO: quic://0.0.0.0:22000 detected NAT type: Symmetric NAT

Just in case, I'm attaching two logcats - the first from the working package built with Go v1.20, and the second, broken one built with Go v1.21.

imsodin commented 10 months ago

In case anyone else is wondering - the go1.21 logcat first starts with go1.20 - 1.21 startup log is at line 2931. And a bit farther down there's something interesting:

01-27 18:30:00.565 21007 21007 W ApiRequest: Request to https://127.0.0.1:8384/rest/system/status failed, javax.net.ssl.SSLHandshakeException: Handshake failed

It's a bit weird, as there are a bunch more api requests without such a failure - maybe they were just delayed and cut off, as the log ends shortly after. And would be grand to have some more useful context than "Handshake failed" - there's a slim chance this will do it, could you try that out please and provide logs again: https://github.com/syncthing/syncthing-android/pull/2046

This are a lot of tls changes in go1.21, but only one (intended) behaviour change to my understanding: New session tickets on resumption where supported. I wont pretend I know what that entails, however it doesn't seem like anything that should cause breakage. So yeah, nothing obvious.

tomasz1986 commented 10 months ago

In case anyone else is wondering - the go1.21 logcat first starts with go1.20 - 1.21 startup log is at line 2931.

Oops, sorry about that. I did logcat -c and thought it would clear the previous logs, but it apparently did not.

Here is the newest logcat with https://github.com/syncthing/syncthing-android/pull/2046:

logcat-go1.21-pr2046.txt

imsodin commented 10 months ago

Thanks, quite a bit more to be seen there:

01-27 19:52:55.261 8440 8440 W ApiRequest: com.android.volley.NoConnectionError: javax.net.ssl.SSLHandshakeException: Handshake failed 01-27 19:52:55.261 8440 8440 W ApiRequest: at com.android.volley.toolbox.NetworkUtility.shouldRetryException(NetworkUtility.java:173) 01-27 19:52:55.261 8440 8440 W ApiRequest: at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:145) 01-27 19:52:55.261 8440 8440 W ApiRequest: at com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:132) 01-27 19:52:55.261 8440 8440 W ApiRequest: at com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:111) 01-27 19:52:55.261 8440 8440 W ApiRequest: at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:90) 01-27 19:52:55.261 8440 8440 W ApiRequest: Caused by: javax.net.ssl.SSLHandshakeException: Handshake failed 01-27 19:52:55.261 8440 8440 W ApiRequest: at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:441) 01-27 19:52:55.261 8440 8440 W ApiRequest: at com.android.okhttp.internal.http.SocketConnector.connectTls(SocketConnector.java:212) 01-27 19:52:55.261 8440 8440 W ApiRequest: at com.android.okhttp.Connection.connect(Connection.java:1322) 01-27 19:52:55.261 8440 8440 W ApiRequest: at com.android.okhttp.Connection.connectAndSetOwner(Connection.java:1410) 01-27 19:52:55.261 8440 8440 W ApiRequest: at com.android.okhttp.OkHttpClient$1.connectAndSetOwner(OkHttpClient.java:128) 01-27 19:52:55.261 8440 8440 W ApiRequest: at com.android.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:466) 01-27 19:52:55.261 8440 8440 W ApiRequest: at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:447) 01-27 19:52:55.261 8440 8440 W ApiRequest: at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:353) 01-27 19:52:55.261 8440 8440 W ApiRequest: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:476) 01-27 19:52:55.261 8440 8440 W ApiRequest: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:418) 01-27 19:52:55.261 8440 8440 W ApiRequest: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:540) 01-27 19:52:55.261 8440 8440 W ApiRequest: at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getResponseCode(DelegatingHttpsURLConnection.java:105) 01-27 19:52:55.261 8440 8440 W ApiRequest: at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:25) 01-27 19:52:55.261 8440 8440 W ApiRequest: at com.android.volley.toolbox.HurlStack.executeRequest(HurlStack.java:91) 01-27 19:52:55.261 8440 8440 W ApiRequest: at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:104) 01-27 19:52:55.261 8440 8440 W ApiRequest: ... 3 more 01-27 19:52:55.261 8440 8440 W ApiRequest: Suppressed: javax.net.ssl.SSLHandshakeException: Handshake failed 01-27 19:52:55.261 8440 8440 W ApiRequest: ... 18 more 01-27 19:52:55.261 8440 8440 W ApiRequest: Suppressed: javax.net.ssl.SSLHandshakeException: Handshake failed 01-27 19:52:55.261 8440 8440 W ApiRequest: ... 18 more 01-27 19:52:55.261 8440 8440 W ApiRequest: Caused by: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x94898c00: Failure in SSL library, usually a protocol error 01-27 19:52:55.261 8440 8440 W ApiRequest: error:100ba0f1:SSL routines:ssl3_get_message:UNEXPECTED_MESSAGE (external/boringssl/src/ssl/s3_both.c:389 0xad76b7f7:0x00000000) 01-27 19:52:55.261 8440 8440 W ApiRequest: at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method) 01-27 19:52:55.261 8440 8440 W ApiRequest: at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:353) 01-27 19:52:55.261 8440 8440 W ApiRequest: ... 17 more 01-27 19:52:55.261 8440 8440 W ApiRequest: Caused by: javax.net.ssl.SSLProtocolException: SSL handshake terminated: ssl=0x94898c00: Failure in SSL library, usually a protocol error 01-27 19:52:55.261 8440 8440 W ApiRequest: error:100c542e:SSL routines:ssl3_read_bytes:TLSV1_ALERT_PROTOCOL_VERSION (external/boringssl/src/ssl/s3_pkt.c:972 0xae175cc0:0x00000001) 01-27 19:52:55.261 8440 8440 W ApiRequest: at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method) 01-27 19:52:55.261 8440 8440 W ApiRequest: at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:353) 01-27 19:52:55.261 8440 8440 W ApiRequest: ... 17 more 01-27 19:52:55.261 8440 8440 W ApiRequest: Caused by: javax.net.ssl.SSLProtocolException: SSL handshake terminated: ssl=0x94898c00: Failure in SSL library, usually a protocol error 01-27 19:52:55.261 8440 8440 W ApiRequest: error:100c542e:SSL routines:ssl3_read_bytes:TLSV1_ALERT_PROTOCOL_VERSION (external/boringssl/src/ssl/s3_pkt.c:972 0xae175cc0:0x00000001) 01-27 19:52:55.261 8440 8440 W ApiRequest: at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method) 01-27 19:52:55.261 8440 8440 W ApiRequest: at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:353) 01-27 19:52:55.261 8440 8440 W ApiRequest: ... 17 more

There's TLSv1 and SSL3 mentioned in there, all too old. That would be a reasonable explanation, except that's been too old for a long time, not since go1.21.

So yeah, still no clue but now it seems pretty clear it's the TLS connection. So we could just make that plain http for android <=6 as a workaround.

mx1up commented 10 months ago

i didn't read the full thread, but maybe this SO answer contains relevant info? i.e. either disabling certain protocols or installing new security providers through play services

SerVB commented 9 months ago

It's really unclear: I was just able to use Syncthing 1.27.1.1 from Google Play on my Android 5.1.1 device. As I mentioned, it usually shows me an infinite loading but still works (syncs) under the hood. But this time, it loaded, the UI showed my folder and devices well, along with statuses. I immediately backed up the config, as suggested in the issue above :) Then I tried to restart Syncthing to check, and there is the same infinite loading multiple times in a row, looks like I can't reproduce the working state anymore.

I think I deactivated Airplane Mode (and therefore activated Wi-Fi) along with that successful start. But I tried to do the same and it didn't help anymore.

Interesting how it happened. Is there a race maybe?..

Hob111 commented 6 months ago

I've come to this rather late, maybe to throw a spanner in the works or maybe to shed some light.

I have this (apparently) same problem on my Android tablet (6.0.1). However, Syncthing was installed from F-Droid and always has been. Also my version is later than those mentioned so far, 1.27.6. I can't be sure whether this problem started with this version or an earlier one, there were only 6 days between the release of 1.27.5 and 1.27.6 on F-Droid. Despite the failure to load properly the syncing is working fine.

I attach the initial log file and one from much later in the same session, I hope someone will find this helpful. Syncthing Android log.txt Syncthing Android later log.txt

srett commented 2 months ago

Maybe related to my issue discovered on syncthing-fork? I haven't verified on the official version though, maybe someone affected can test – assuming the environment variables are configurable here too.

https://github.com/Catfriend1/syncthing-android/issues/1131

tomasz1986 commented 2 months ago

Maybe related to my issue discovered on syncthing-fork? I haven't verified on the official version though, maybe someone affected can test – assuming the environment variables are configurable here too.

Catfriend1/syncthing-android#1131

This is interesting. It would be a way to work around the certificate problem without root access. This would even be more useful as in the upcoming Syncthing version discovery is also going to be broken without valid certificates (see https://github.com/syncthing/syncthing/commit/718b1ce2b7ea35b7f33126112b22ccfaf10763cf).

bt90 commented 2 months ago

See https://github.com/syncthing/syncthing/pull/9673#issuecomment-2324481551

@calmh i think we can avoid a bunch of support threads this way

Hob111 commented 2 months ago

Maybe related to my issue discovered on syncthing-fork? I haven't verified on the official version though, maybe someone affected can test – assuming the environment variables are configurable here too.

Catfriend1/syncthing-android#1131

I'd put a week's income on it being the same issue. My solution was to buy a new tablet 🤣. Seriously though, the old one needed updating. However, it would be useful to dust it off and keep it as a spare so I'm charging it and I'll give your solution a try. However, when I tried http://127.0.0.1:8384/ on the NEW tablet to check if the Debug menu was available through the browser GUI I was asked for a username and password. I've never set one so I assume there is a default on Android, there's certainly nothing on my Windows Syncthing. Can anyone help please?

tomasz1986 commented 2 months ago

I've never set one so I assume there is a default on Android, there's certainly nothing on my Windows Syncthing. Can anyone help please?

This question should have really been asked on the forum, as it's not related with the issue at hand, but the default username on Android is syncthing and the password is the API key, which can be viewed in the Syncthing app settings.

Hob111 commented 2 months ago

I've never set one so I assume there is a default on Android, there's certainly nothing on my Windows Syncthing. Can anyone help please?

This question should have really been asked on the forum, as it's not related with the issue at hand, but the default username on Android is syncthing and the password is the API key, which can be viewed in the Syncthing app settings.

Thanks, and apologies for posting the Q here but it seemed appropriate given the discussion here and that I was going to try the fix. Next Q is how do I find the Syncthing app settings if the app wrapper/GUI won't start? Are they available somewhere else?

srett commented 2 months ago

However, when I tried http://127.0.0.1:8384/ on the NEW tablet to check if the Debug menu was available

Ah sorry, I'm not talking about the Web UI here, this is a menu item in the Android wrapper, but I'm not sure whether it was added by the fork. If so, I don't think there's an easy way to test it with vanilla syncthing-android without building a new apk. It's at Settings -> Troubleshooting -> Environment Variables.

But as said in the linked issue, I don't really understand why this would even fix the issue at hand, because the certificate used by the web interface is a self-signed one anyways. Maybe I accidentally changed something else during debugging. But if this really works I'm dying for an explanation. :)

tomasz1986 commented 2 months ago

Next Q is how do I find the Syncthing app settings if the app wrapper/GUI won't start? Are they available somewhere else?

Normally, you can export them from inside the app using the backup function. If both the Web GUI and the app doesn't load, then the only way to access them is with root.

but I'm not sure whether it was added by the fork.

You can set environment variables in the official app too.

Hob111 commented 2 months ago

Ah sorry, I'm not talking about the Web UI here, this is a menu item in the Android wrapper, but I'm not sure whether it was added by the fork. If so, I don't think there's an easy way to test it with vanilla syncthing-android without building a new apk. It's at Settings -> Troubleshooting -> Environment Variables.

Thanks Simon. On the new tablet I've got Settings-> Debug -> Environment variables where I seem to be able to add them. It remains to be seen if I can access this on the Android 6 tablet, once it's charged I'll have a go and report back here.

Hob111 commented 2 months ago

Thanks Simon. On the new tablet I've got Settings-> Debug -> Environment variables where I seem to be able to add them. It remains to be seen if I can access this on the Android 6 tablet, once it's charged I'll have a go and report back here.

Unfortunately the menu is inaccessible in the official app until the GUI has loaded properly so it's not possible to test this method on an already broken installation..... unless there's another way of adding environment variables which doesn't involve this menu or localhost access?