signalapp / Signal-Desktop

A private messenger for Windows, macOS, and Linux.
https://signal.org/download
GNU Affero General Public License v3.0
14.68k stars 2.68k forks source link

Dialog for saving attachments causes repeated crashes of kioworker in KDE 6 #7006

Closed GumiBear93 closed 1 month ago

GumiBear93 commented 2 months ago

Using a supported version?

Overall summary

I'm using KDE Plasma 6.1.4 on TUXEDO OS 3, running the latest Signal desktop client on version 7.22.2. Downloading an attachment (either directly in a chat or when viewing the attachment inside the Signal client) works just fine, it opens the Dolphin file manager and allows me to download the file in the desired place. While the file manager is open, my task bar is flooded with notifications from KDE's crash handler, notifying me that kioworker has crashed. The following crash information is available to me:

Application: kioworker (kioworker), signal: Aborted

[KCrash Handler]
#4  __pthread_kill_implementation (no_tid=0, signo=6, threadid=138435145347712) at ./nptl/pthread_kill.c:44
#5  __pthread_kill_internal (signo=6, threadid=138435145347712) at ./nptl/pthread_kill.c:78
#6  __GI___pthread_kill (threadid=138435145347712, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#7  0x00007de7f5a42476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#8  0x00007de7f5a287f3 in __GI_abort () at ./stdlib/abort.c:79
#9  0x00007de7f62fdbca in qAbort() () from /lib/x86_64-linux-gnu/libQt6Core.so.6
#10 0x00007de7f62f875a in ?? () from /lib/x86_64-linux-gnu/libQt6Core.so.6
#11 0x00007de7f62fe56d in QMessageLogger::fatal(char const*, ...) const () from /lib/x86_64-linux-gnu/libQt6Core.so.6
#12 0x00007de7f62c2ce2 in qt_assert_x(char const*, char const*, char const*, int) () from /lib/x86_64-linux-gnu/libQt6Core.so.6
#13 0x00007de7f65bd728 in ?? () from /usr/lib/x86_64-linux-gnu/qt6/plugins/kf6/kio/thumbnail.so
#14 0x00007de7f649d8b5 in ?? () from /lib/x86_64-linux-gnu/libKF6KIOCore.so.6
#15 0x00007de7f649aeae in ?? () from /lib/x86_64-linux-gnu/libKF6KIOCore.so.6
#16 0x00007de7f654a39a in ?? () from /lib/x86_64-linux-gnu/libKF6KIOCore.so.6
#17 0x00007de7f65c1bbb in kdemain () from /usr/lib/x86_64-linux-gnu/qt6/plugins/kf6/kio/thumbnail.so
#18 0x00005fff287a05a0 in ?? ()
#19 0x00007de7f5a29d90 in __libc_start_call_main (main=main@entry=0x5fff287a03c0, argc=argc@entry=5, argv=argv@entry=0x7ffd39989e38) at ../sysdeps/nptl/libc_start_call_main.h:58
#20 0x00007de7f5a29e40 in __libc_start_main_impl (main=0x5fff287a03c0, argc=5, argv=0x7ffd39989e38, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd39989e28) at ../csu/libc-start.c:392
#21 0x00005fff287a0885 in ?? ()
[Inferior 1 (process 10216) detached]

Similar reports can be found on the KDE forum, with no conclusion as to what causes this behavior.

Steps to reproduce

  1. Enter a chat with attachments
  2. Press Download-button next to attachment or in attachment-view to bring up the file explorer dialogue

Expected result

Able to save file without any interference.

Actual result

Able to save file, but kioworker is crashing at a rate of about 5-10 crashes per second, flooding the task bar with notifications.

Screenshots

No response

Signal version

7.22.2

Operating system

TUXEDO OS 3 Release 22.04, Kernel Version 6.8.0-101041-tuxedo

Version of Signal on your phone

7.15.4

Link to debug log

No response

ayumi-signal commented 2 months ago

Sorry this is happening. This could be an electron issue, since the KDE report you linked mentions Typora which is also an electron app.

Could you please try to reproduce this using Electron fiddle and consider looking at the electron issues? Here is a Fiddle which involves file selection: https://github.com/electron/electron/issues/42250#issuecomment-2187274111

securityboxtc commented 2 months ago

I have a similar problem with the same OS/KDE/Signal desktop versions and would be more than willing to attempt to duplicate any tests or provide duplicate logs if necessary.

scottnonnenberg-signal commented 2 months ago

@securityboxtc If you go to that electron issue and try that in Electron Fiddle, you can contribute to the set of people who can reproduce the issue. But for now, we're waiting on Electron to fix it.

GumiBear93 commented 2 months ago

@scottnonnenberg-signal the linked gist doesn't cause the issue on the affected system, Neither with the provided Version (30.0.9) nor with Signal's version (at least the one specified in package.json, 32.0.1).

scottnonnenberg-signal commented 2 months ago

@GumiBear93 7.23.0, the latest production version of Signal Desktop, is using Electron 31.3.1. It's been the Electron version in use for a couple versions now. Do you see the error in Electron Fiddle for that version?

scottnonnenberg-signal commented 2 months ago

If you install the beta, that's on Electron 32.0.1. Maybe you could try installing it, see if the problem happens on that newer build: https://support.signal.org/hc/en-us/articles/360007318471-Signal-Beta

GumiBear93 commented 2 months ago

7.23.0, the latest production version of Signal Desktop, is using Electron 31.3.1.

thanks for the correction :) but the error seems to be independent from the Electron version. Neither does version 31.3.1 cause any errors in the gist, nor is the problem solved in the latest beta version of the Signal desktop client.

scottnonnenberg-signal commented 2 months ago

@GumiBear93 You can see the code Signal Desktop uses to show the save dialog here: https://github.com/signalapp/Signal-Desktop/blob/52a012d1c6783890e0c84b1002ea0be8c472027e/app/main.ts#L2996-L3005

Maybe the gist needs to be updated to do that? It's being called from the main process, via IPC. You can search for the string 'show-save-dialog' to find that ipc setup.

GumiBear93 commented 2 months ago

@scottnonnenberg-signal can you help me how to do that? i've never worked with these tools/ languages before.

jamiebuilds-signal commented 2 months ago

@GumiBear93 Here is a gist that opens up the save dialog as soon as you launch the app, you can put this into electron fiddle and test it out on your device: https://gist.github.com/25bcd3ef171e899901ed6e0da6fc7ad8

GumiBear93 commented 2 months ago

@jamiebuilds-signal thank you :) running that fiddle does open up the file explorer as expected, but again, the issue doesn't come up. I merged the two electron fiddles to open the dialog on a button press just in case it made a difference, but it works without any issues.

jamiebuilds-signal commented 2 months ago

Are you able to reproduce the results with the fiddle in this comment: https://github.com/electron/electron/issues/42250#issuecomment-2187274111

GumiBear93 commented 2 months ago

@jamiebuilds-signal I've tried that specific fiddle here, it didn't cause any issues.

GumiBear93 commented 1 month ago

as of version 7.26.0 this issue doesn't happen anymore. not sure if it was resolved in an earlier version but i will close this issue. thanks to all the Signal developers for your work, and for everyone in this thread being patient with me <3