signalapp / Signal-Desktop

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

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

Open GumiBear93 opened 2 weeks ago

GumiBear93 commented 2 weeks 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 1 week 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 1 week 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 1 week 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 6 days 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 5 days 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 5 days 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 5 days 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 4 days 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 5 hours ago

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