Kdinit5 and kdialog keep crashing frequently

Steps to reproduce:

  1. Open Chromium

  2. Select any file to download

  3. When the Dialog Box opens up, try to change the default filename

  4. Now try to change the target directory

  5. Crash occurs multiple times (>19) per single event

    Kernel: 5.4.112-1-MANJARO
    DE: Plasma 5.21.4
    WM: KWin
    WM Theme: WhiteSur-Sharp

Log 1:

Application: kdeinit5 (kdeinit5), signal: Segmentation fault

[KCrash Handler]
#4  0x00007f4d261ed566 in __memmove_avx_unaligned_erms () from /usr/lib/libc.so.6
#5  0x00007f4d270be492 in ?? () from /usr/lib/qt/plugins/kf5/kio/thumbnail.so
#6  0x00007f4d22b536df in KIO::SlaveBase::dispatch(int, QByteArray const&) () from /usr/lib/libKF5KIOCore.so.5
#7  0x00007f4d22b54006 in KIO::SlaveBase::dispatchLoop() () from /usr/lib/libKF5KIOCore.so.5
#8  0x00007f4d270bc026 in kdemain () from /usr/lib/qt/plugins/kf5/kio/thumbnail.so
#9  0x000055cdd53cc5bd in ?? ()
#10 0x000055cdd53cda59 in ?? ()
#11 0x000055cdd53ce237 in ?? ()
#12 0x000055cdd53c9b54 in ?? ()
#13 0x00007f4d260b0b25 in __libc_start_main () from /usr/lib/libc.so.6
#14 0x000055cdd53ca6be in ?? ()
[Inferior 1 (process 3067) detached]

Log 2:

Application: KDialog (kdialog), signal: Segmentation fault

[KCrash Handler]
#4  0x00007ff3cbccb566 in __memmove_avx_unaligned_erms () from /usr/lib/libc.so.6
#5  0x00007ff3cc772917 in QImage::copy(QRect const&) const () from /usr/lib/libQt5Gui.so.5
#6  0x00007ff3c76704b2 in ?? () from /usr/lib/libKF5KIOWidgets.so.5
#7  0x00007ff3cc1fe996 in ?? () from /usr/lib/libQt5Core.so.5
#8  0x00007ff3cd615735 in KIO::TransferJob::data(KIO::Job*, QByteArray const&) () from /usr/lib/libKF5KIOCore.so.5
#9  0x00007ff3cc1fe996 in ?? () from /usr/lib/libQt5Core.so.5
#10 0x00007ff3cd5f1ac3 in KIO::SlaveInterface::data(QByteArray const&) () from /usr/lib/libKF5KIOCore.so.5
#11 0x00007ff3cd5f3f7d in KIO::SlaveInterface::dispatch(int, QByteArray const&) () from /usr/lib/libKF5KIOCore.so.5
#12 0x00007ff3cd5f228a in KIO::SlaveInterface::dispatch() () from /usr/lib/libKF5KIOCore.so.5
#13 0x00007ff3cd5f5d8b in KIO::Slave::gotInput() () from /usr/lib/libKF5KIOCore.so.5
#14 0x00007ff3cc1fe996 in ?? () from /usr/lib/libQt5Core.so.5
#15 0x00007ff3cc1f4142 in QObject::event(QEvent*) () from /usr/lib/libQt5Core.so.5
#16 0x00007ff3cce12762 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#17 0x00007ff3cc1c763a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#18 0x00007ff3cc1ca133 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQt5Core.so.5
#19 0x00007ff3cc220b04 in ?? () from /usr/lib/libQt5Core.so.5
#20 0x00007ff3ca92202c in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#21 0x00007ff3ca975b59 in ?? () from /usr/lib/libglib-2.0.so.0
#22 0x00007ff3ca91f781 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#23 0x00007ff3cc220141 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#24 0x00007ff3cc1c5f9c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#25 0x00007ff3cd01657a in QDialog::exec() () from /usr/lib/libQt5Widgets.so.5
#26 0x00007ff3cd0164b6 in QDialog::exec() () from /usr/lib/libQt5Widgets.so.5
#27 0x000055a6947837ae in ?? ()
#28 0x00007ff3cbb8eb25 in __libc_start_main () from /usr/lib/libc.so.6
#29 0x000055a69478569e in _start ()
[Inferior 1 (process 3675) detached]

Check if you have some (kde-) *-gitpackages installed and replace those with their matching counterparts, see

1 Like

The list of all packages that I have installed on top of the default ones that start with k or plasma and end with git:

$ comm -12 <(grep -Poe '\[ALPM\] installed \K\S*' /var/log/pacman.log | sort | uniq) <(pacman -Qeqn | sort) | egrep -h "^(k|plasma).*git$"
# no results

The list of all AUR packages that I have installed that start with k or plasma and end with git:

$ comm -12 <(grep -Poe '\[ALPM\] installed \K\S*' /var/log/pacman.log | sort | uniq) <(pacman -Qeqm | sort) | egrep -h "^(k|plasma).*git$"
kdenlive-release-git

Full list of my -git packages:

$ pacman -Qs '\-git$'
local/dsf2flac-git r29.b0cf5aa-2
    Tool for converting DSF to FLAC files.
local/gimp-plugin-registry 9.20180625-2
    Repository of optional extensions for GIMP
local/jmtpfs-git v0.5-3
    mtpfs with better support for Android
local/kdenlive-release-git .r13481.2481d6538-1
    A non-linear video editor. Following latest released branch in git.
local/pet-git 20190215-1
    Simple command-line snippet manager, written in Go.
local/qimgv-git v0.9.2.alpha.r6.ge59d038-1
    Qt5 image viewer. Fast, configurable, easy to use. Supports video playback.
local/simplescreenrecorder-git 0.4.2.r11.g7f26bc7-1
    A simple but powerful recording tool for X11, OpenGL and V4L2. (Git version)
local/tmatrix-git 1.3.r15.g1bc5eb9-1
    A cmatrix-like replica of the digital rain from the Matrix
local/untrunc-anthwlock-cli-git r280.8024f0c-1
    Restore a truncated mp4/mov. Improved version of ponchio/untrunc. CLI only.

I don’t see any reason for such interfering here.

1 Like

Could be completely unrelated, but I’ve noticed issues with multiple Qt applications with their Dialog boxes as well, e.g. Audacious whilst trying to open any directory. There’s a Python code to replicate such issue (try to run the code below and select any directory):

from PyQt5 import QtCore
from PyQt5.QtWidgets import QFileDialog, QApplication, QWidget
import os
import sys

class App(QWidget):
    def __init__(self):
        def receive():
            dirs = dialog.selectedFiles()
            print(dirs)
        super().__init__()
        dialog = choose_file_dialog(self, "Choose wisely!", want_folder=True)
        dialog.open(receive)  # Open and cancel buttons don't do anything on KDE, breaks here.
        dialog.exec()
        sys.exit()


def choose_file_dialog(parent, title, want_folder=True):
    options = QFileDialog.Options()
    if want_folder:
        options |= QFileDialog.ShowDirsOnly
    dialog = QFileDialog(parent, title, os.path.expanduser('~'), options=options)
    dialog.setFileMode(QFileDialog.Directory if want_folder else QFileDialog.ExistingFiles)
    dialog.setParent(parent, QtCore.Qt.Sheet)
    return dialog

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    sys.exit(app.exec_())

Expected behavior would be:

  1. Open should pass the selected path back to the application and close the Dialog box
  2. Cancel closes the Dialog

For me, neither of those 2 expected behaviors could be replicated with the latest KDE. As far as I’m aware, the code works fine with Gnome.

I moved this issue upstream, so for any further reference follow this issue:

https://bugs.kde.org/show_bug.cgi?id=436025

2 Likes