Bug 485278 - KDE Connect 1.30.0 keeps crashing on my Android phone
Summary: KDE Connect 1.30.0 keeps crashing on my Android phone
Status: RESOLVED FIXED
Alias: None
Product: kdeconnect
Classification: Applications
Component: android-application (show other bugs)
Version: unspecified
Platform: Android Android 11.x
: NOR crash
Target Milestone: ---
Assignee: Albert Vaca Cintora
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-04-09 14:13 UTC by Hoàng Văn Khải
Modified: 2024-04-24 08:12 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Hoàng Văn Khải 2024-04-09 14:13:07 UTC
***
If you're not sure this is actually a bug, instead post about it at https://discuss.kde.org

If you're reporting a crash, attach a backtrace with debug symbols; see https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports
***

SUMMARY
Today, I just notice that KDE Connect on my phone keeps crashing. After a while, I decided to turn off auto-update from Google Play Store, and re-install KDE Connect 1.29.0 from F-Droid and the app stop crashing.

STEPS TO REPRODUCE
1. 
2. 
3. 

OBSERVED RESULT
After leaving it open in the background for about 5 minutes, the app crashes

EXPECTED RESULT
The app doesn't crash

SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: 
KDE Frameworks Version: 
Qt Version: 

ADDITIONAL INFORMATION
I actually use GSConnect extension for GNOME Shell 45 to connect my Arch Linux to my phone.
Comment 1 Hoàng Văn Khải 2024-04-09 20:15:58 UTC
Ib4 anyone mentions "battery optimization". I already have it turned off. The Android OS reported that the app crashes.
Comment 2 Andy Holmes 2024-04-10 02:00:24 UTC
Hi, and thanks for mentioning you're using GSConnect.

If possible, you can use GSConnect's "Support Log" feature to generate a log of all packets sent to the remote device, which might help narrow this down. There's a guide on how to use it here: https://github.com/GSConnect/gnome-shell-extension-gsconnect/wiki/Help#generate-support-log

The crash in kdeconnect-android should be fixed of course, but this is good sign that GSConnect is doing something it shouldn't. If you do find time, be sure to remove any personal data from the logs before sharing it here.
Comment 3 UlyssesZhan 2024-04-11 17:35:09 UTC
I am constantly reproducing this bug on 1.30.0 on Android 11. I can reproduce this bug stably by enabling clipboard sharing and copy something on Android. Log from GSConnect is not useful:

Apr 11 10:29:41 org.gnome.Shell.Extensions.GSConnect[692218]: [resource:_promisify/proto[asyncFunc]/</<:///org/gnome/gjs/modules/core/overrides/Gio.js]: Ulysses' S20: TLS connection closed unexpectedly
                                                              _promisify/proto[asyncFunc]/</<@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:453:45
                                                              @/nix/store/cm61jip4wxvgxic6b8k3fvpcsjggs7x1-gnome-shell-extension-gsconnect-56/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/.daemon.js-wrapped:720:17
                                                              ### Promise created here: ###
                                                              readPacket@/nix/store/cm61jip4wxvgxic6b8k3fvpcsjggs7x1-gnome-shell-extension-gsconnect-56/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/core.js:231:48
                                                              _readLoop@/nix/store/cm61jip4wxvgxic6b8k3fvpcsjggs7x1-gnome-shell-extension-gsconnect-56/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/device.js:363:49
                                                              async*setChannel@/nix/store/cm61jip4wxvgxic6b8k3fvpcsjggs7x1-gnome-shell-extension-gsconnect-56/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/device.js:346:18
                                                              _onChannel@/nix/store/cm61jip4wxvgxic6b8k3fvpcsjggs7x1-gnome-shell-extension-gsconnect-56/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/manager.js:229:20
                                                              channel@/nix/store/cm61jip4wxvgxic6b8k3fvpcsjggs7x1-gnome-shell-extension-gsconnect-56/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/core.js:436:19
                                                              _onIdentity@/nix/store/cm61jip4wxvgxic6b8k3fvpcsjggs7x1-gnome-shell-extension-gsconnect-56/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/backends/lan.js:390:18
                                                              async*_onIncomingIdentity@/nix/store/cm61jip4wxvgxic6b8k3fvpcsjggs7x1-gnome-shell-extension-gsconnect-56/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/backends/lan.js:344:18
                                                              @/nix/store/cm61jip4wxvgxic6b8k3fvpcsjggs7x1-gnome-shell-extension-gsconnect-56/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/.daemon.js-wrapped:720:17
Apr 11 10:29:41 org.gnome.Shell.Extensions.GSConnect[692218]: [/service/backends/lan.js:close:762]: "lan://192.168.1.4:1716 (bffb8cfc-dacd-4b86-a9c7-18fd9cb8d84b)"
Comment 4 Andy Holmes 2024-04-11 19:35:58 UTC
(In reply to UlyssesZhan from comment #3)
> I am constantly reproducing this bug on 1.30.0 on Android 11. I can
> reproduce this bug stably by enabling clipboard sharing and copy something
> on Android. Log from GSConnect is not useful:
> 
> Apr 11 10:29:41 org.gnome.Shell.Extensions.GSConnect[692218]:
> [resource:_promisify/proto[asyncFunc]/</<:///org/gnome/gjs/modules/core/
> overrides/Gio.js]: Ulysses' S20: TLS connection closed unexpectedly
>                                                              
> _promisify/proto[asyncFunc]/</<@resource:///org/gnome/gjs/modules/core/
> overrides/Gio.js:453:45
>                                                              
> @/nix/store/cm61jip4wxvgxic6b8k3fvpcsjggs7x1-gnome-shell-extension-gsconnect-
> 56/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/.
> daemon.js-wrapped:720:17
>                                                               ### Promise
> created here: ###
>                                                              
> readPacket@/nix/store/cm61jip4wxvgxic6b8k3fvpcsjggs7x1-gnome-shell-extension-
> gsconnect-56/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/
> service/core.js:231:48
>                                                              
> _readLoop@/nix/store/cm61jip4wxvgxic6b8k3fvpcsjggs7x1-gnome-shell-extension-
> gsconnect-56/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/
> service/device.js:363:49
>                                                              
> async*setChannel@/nix/store/cm61jip4wxvgxic6b8k3fvpcsjggs7x1-gnome-shell-
> extension-gsconnect-56/share/gnome-shell/extensions/gsconnect@andyholmes.
> github.io/service/device.js:346:18
>                                                              
> _onChannel@/nix/store/cm61jip4wxvgxic6b8k3fvpcsjggs7x1-gnome-shell-extension-
> gsconnect-56/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/
> service/manager.js:229:20
>                                                              
> channel@/nix/store/cm61jip4wxvgxic6b8k3fvpcsjggs7x1-gnome-shell-extension-
> gsconnect-56/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/
> service/core.js:436:19
>                                                              
> _onIdentity@/nix/store/cm61jip4wxvgxic6b8k3fvpcsjggs7x1-gnome-shell-
> extension-gsconnect-56/share/gnome-shell/extensions/gsconnect@andyholmes.
> github.io/service/backends/lan.js:390:18
>                                                              
> async*_onIncomingIdentity@/nix/store/cm61jip4wxvgxic6b8k3fvpcsjggs7x1-gnome-
> shell-extension-gsconnect-56/share/gnome-shell/extensions/
> gsconnect@andyholmes.github.io/service/backends/lan.js:344:18
>                                                              
> @/nix/store/cm61jip4wxvgxic6b8k3fvpcsjggs7x1-gnome-shell-extension-gsconnect-
> 56/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/.
> daemon.js-wrapped:720:17
> Apr 11 10:29:41 org.gnome.Shell.Extensions.GSConnect[692218]:
> [/service/backends/lan.js:close:762]: "lan://192.168.1.4:1716
> (bffb8cfc-dacd-4b86-a9c7-18fd9cb8d84b)"

Can you use "Generate Support Log" feature, as described here: https://github.com/GSConnect/gnome-shell-extension-gsconnect/wiki/Help#generate-support-log ?

Allow the dialog to open, then reproduce the problem, only then close the dialog. This will include a list of packets sent to the Android device. If there is no log of any packets, then you probably closed the dialog before reproducing the problem.
Comment 5 UlyssesZhan 2024-04-11 19:40:38 UTC
(In reply to Andy Holmes from comment #4)
> Can you use "Generate Support Log" feature, as described here:
> https://github.com/GSConnect/gnome-shell-extension-gsconnect/wiki/
> Help#generate-support-log ?
> 
> Allow the dialog to open, then reproduce the problem, only then close the
> dialog. This will include a list of packets sent to the Android device. If
> there is no log of any packets, then you probably closed the dialog before
> reproducing the problem.

I am using that feature. I close the dialog after the Android client fully exits. The log that I posted is the last thing in the log, and also the only thing that looks like an error having happened. All the previous log items are SMS messages that contain my private info, so I apologize for not providing the full logj, but they are not useful anyway.
Comment 6 Andy Holmes 2024-04-11 20:14:36 UTC
(In reply to UlyssesZhan from comment #5)
> (In reply to Andy Holmes from comment #4)
> > Can you use "Generate Support Log" feature, as described here:
> > https://github.com/GSConnect/gnome-shell-extension-gsconnect/wiki/
> > Help#generate-support-log ?
> > 
> > Allow the dialog to open, then reproduce the problem, only then close the
> > dialog. This will include a list of packets sent to the Android device. If
> > there is no log of any packets, then you probably closed the dialog before
> > reproducing the problem.
> 
> I am using that feature. I close the dialog after the Android client fully
> exits. The log that I posted is the last thing in the log, and also the only
> thing that looks like an error having happened. All the previous log items
> are SMS messages that contain my private info, so I apologize for not
> providing the full logj, but they are not useful anyway.

Okay, thanks for the quick response. This will likely have to be debugged on the Android-side then.

If you have `adb` setup for your device, you can try running this command:

adb logcat --pid=$(adb shell pidof -s org.kde.kdeconnect_tp)
Comment 7 UlyssesZhan 2024-04-11 20:55:06 UTC
(In reply to Andy Holmes from comment #6)
> If you have `adb` setup for your device, you can try running this command:
> 
> adb logcat --pid=$(adb shell pidof -s org.kde.kdeconnect_tp)
--------- beginning of crash
04-11 13:50:48.758 17300 17864 E AndroidRuntime: FATAL EXCEPTION: pool-5-thread-4
04-11 13:50:48.758 17300 17864 E AndroidRuntime: Process: org.kde.kdeconnect_tp, PID: 17300
04-11 13:50:48.758 17300 17864 E AndroidRuntime: java.lang.IndexOutOfBoundsException: Index: 152, Size: 152
04-11 13:50:48.758 17300 17864 E AndroidRuntime: 	at java.util.ArrayList.get(ArrayList.java:437)
04-11 13:50:48.758 17300 17864 E AndroidRuntime: 	at org.kde.kdeconnect.Helpers.SMSHelper$1$1.next(SMSHelper.java:533)
04-11 13:50:48.758 17300 17864 E AndroidRuntime: 	at org.kde.kdeconnect.Helpers.SMSHelper$1$1.next(SMSHelper.java:546)
04-11 13:50:48.758 17300 17864 E AndroidRuntime: 	at org.kde.kdeconnect.Helpers.SMSHelper$1$1.next(SMSHelper.java:523)
04-11 13:50:48.758 17300 17864 E AndroidRuntime: 	at org.kde.kdeconnect.Plugins.SMSPlugin.SMSPlugin.handleRequestAllConversations(SMSPlugin.java:513)
04-11 13:50:48.758 17300 17864 E AndroidRuntime: 	at org.kde.kdeconnect.Plugins.SMSPlugin.SMSPlugin.lambda$onPacketReceived$0(SMSPlugin.java:408)
04-11 13:50:48.758 17300 17864 E AndroidRuntime: 	at org.kde.kdeconnect.Plugins.SMSPlugin.SMSPlugin.$r8$lambda$AfX9qEyjoa8OKCEElDaWKWyFSiY(SMSPlugin.java:0)
04-11 13:50:48.758 17300 17864 E AndroidRuntime: 	at org.kde.kdeconnect.Plugins.SMSPlugin.SMSPlugin$$ExternalSyntheticLambda0.run(R8$$SyntheticClass:0)
04-11 13:50:48.758 17300 17864 E AndroidRuntime: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
04-11 13:50:48.758 17300 17864 E AndroidRuntime: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
04-11 13:50:48.758 17300 17864 E AndroidRuntime: 	at java.lang.Thread.run(Thread.java:923)

It seems that I falsely attributed the cause to clipboards... It crashes whenever paired to my GSConnect for some time. The number 152 here is consistent for every crashing (after I let my friend send me an additional message). Full log: https://pastebin.com/s7RX9DSn
Comment 8 Albert Vaca Cintora 2024-04-12 07:29:11 UTC
This is related to the SMS plugin and should be fixed in KDE Connect version 1.30.1 for Android, please reopen if it still crashes after updating. As a workaround, disabling the plugin should stop the issues.
Comment 9 Hoàng Văn Khải 2024-04-24 08:11:31 UTC
1.30.1 still exits after a few minutes. The only difference is that my phone doesn't report any crash. I also double checked to make sure that "Battery Optimization" is off.
Comment 10 Hoàng Văn Khải 2024-04-24 08:12:17 UTC
Disabling the "Send SMS" plugin doesn't fix the problem either.