SUMMARY xdg-desktop-portal-kde crashes on startup, causing apps to freeze briefly (~0.5–10s) when closing file dialogs. STEPS TO REPRODUCE 1. Open any application that uses the Qt/KDE file dialog (e.g. Dolphin, Kate, Gwenview). 2. Trigger a file dialog (e.g. File → Open). 3. Close the dialog with or without selecting anything. OBSERVED RESULT The application freezes for a short period (initially 5–10 seconds, now ~0.5s after a workaround) after the file dialog closes. This corresponds to a timeout caused by xdg-desktop-portal-kde failing to respond on D-Bus due to crashing on startup. Logs show: pgsql Copier Modifier qt.qpa.xcb: could not connect to display qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found. This application failed to start because no Qt platform plugin could be initialized. xdg-desktop-portal-kde.service: Failed with result 'core-dump' EXPECTED RESULT The file dialog closes immediately and the application remains responsive, without freezing. SOFTWARE/OS VERSIONS Operating System: EndeavourOS KDE Plasma Version: 6.4.2 KDE Frameworks Version: 6.15.0 Qt Version: 6.9.1 Kernel Version: 6.15.5-zen1-1-zen (64-bit) Graphics Platform: Wayland Display Manager: SDDM xdg-desktop-portal: 1.20.3-1 xdg-desktop-portal-kde: 6.4.2-1 xcb-util-cursor: installed xdg-desktop-portal-gtk: not installed ADDITIONAL INFORMATION As a workaround, I created a user-level systemd service to manually start the portal: # ~/.config/systemd/user/xdg-desktop-portal-kde.service [Unit] Description=xdg-desktop-portal backend for KDE After=xdg-desktop-portal.service PartOf=xdg-desktop-portal.service [Service] ExecStart=/usr/lib/xdg-desktop-portal-kde Restart=on-failure Environment=QT_QPA_PLATFORM=xcb Environment=DISPLAY=:0 Environment=XDG_CURRENT_DESKTOP=KDE [Install] WantedBy=default.target This reduced the freeze time from ~10s to ~0.5s, confirming that the backend is involved. However, the service still fails with a core dump on startup. This bug appears distinct from Bug 506266, which was GTK-related. My setup does not include the GTK portal, and the crash is confirmed to originate from xdg-desktop-portal-kde. This report and troubleshooting were assisted by ChatGPT to ensure clarity and accuracy. Happy to provide a backtrace or coredump if needed.
If something crashed, we need a backtrace of it so we can figure out what's going on. Can you please attach a backtrace of the crash using the coredumpctl command-line program, as detailed in https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports#Retrieving_a_backtrace_using_coredumpctl? Thanks!
(In reply to Harald Sitter from comment #1) > If something crashed, we need a backtrace of it so we can figure out what's > going on. Can you please attach a backtrace of the crash using the > coredumpctl command-line program, as detailed in > https://community.kde.org/Guidelines_and_HOWTOs/Debugging/ > How_to_create_useful_crash_reports#Retrieving_a_backtrace_using_coredumpctl? > Thanks! Here is the full backtrace obtained via `coredumpctl gdb` for the crash of `xdg-desktop-portal-kde`: #0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44 #1 0x00007f59934a7813 in __pthread_kill_internal (threadid=<optimized out>, signo=6) at pthread_kill.c:89 #2 0x00007f599344ddc0 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26 #3 0x00007f599343557a in __GI_abort () at abort.c:73 #4 0x00007f5993a91217 in qAbort () at /usr/src/debug/qt6-base/qtbase/src/corelib/global/qassert.cpp:46 #5 qt_message_fatal<QString&> (context=..., message=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/global/qlogging.cpp:2149 #6 qt_message(QtMsgType, const QMessageLogContext &, const char *, typedef __va_list_tag __va_list_tag *) (msgType=QtFatalMsg, context=..., msg="%s", ...) at qlogging.cpp:381 #7 0x00007f5993a920ec in QMessageLogger::fatal (this=..., msg="%s") at qlogging.cpp:883 #8 0x00007f59942e215a in init_platform(...) at qguiapplication.cpp:1345 #9 QGuiApplicationPrivate::createPlatformIntegration(...) at qguiapplication.cpp:1591 #10 0x00007f5994398438 in QGuiApplicationPrivate::createEventDispatcher(...) at qguiapplication.cpp:1610 #11 0x00007f5993b6c0f5 in QCoreApplicationPrivate::init(...) at qcoreapplication.cpp:866 #12 0x00007f59943984ce in QGuiApplicationPrivate::init(...) at qguiapplication.cpp:1638 #13 0x00007f5994cfa766 in QApplicationPrivate::init(...) at qapplication.cpp:476 #14 0x00007f5994cfa8b3 in QApplication::QApplication(...) at qapplication.cpp:464 #15 0x000055e4ba570bc7 in main(...) at xdg-desktop-portal-kde.cpp:32 Let me know if you need any further information or if you'd like me to try a debug build.
That is with your ~/.config/systemd/user/xdg-desktop-portal-kde.service file?
(In reply to Harald Sitter from comment #3) > That is with your ~/.config/systemd/user/xdg-desktop-portal-kde.service file? Hi Harald, The crash effectively was happening with a ~/.config/systemd/user/xdg-desktop-portal-kde.service override in place. After removing the override and restarting the session, there are no more crashes via coredumpctl. However, the freeze still occurs when closing a file dialog, whether or not a file was selected. This behavior is reproducible consistently on my system.
Additional info (assisted by ChatGPT): We removed the override file as requested and re-tested using the default systemd user unit. However, when the application freezes (after closing a file dialog), it does not leave a coredump or recoverable trace when run through systemd normally. Since the freeze doesn’t crash the process in a way systemd logs, we tried reproducing it manually by launching xdg-desktop-portal-kde directly under strace, outside of systemd, just to observe whether it hits a fatal condition. Here is the end of the trace (run without the override): ... write(4, "\1\0\0\0\0\0\0\0", 8) = 8 futex(0x55c5d6a2e2e8, FUTEX_WAKE_PRIVATE, 1) = 1 ... exit_group(1) = ? +++ exited with 1 +++ This confirms that the process exits with code 1, consistent with the earlier GDB trace captured with coredumpctl (when the override was still in place), where QMessageLogger::fatal() is reached during init_platform() in Qt. Let me know if there's a recommended way to trigger a proper coredump in this context, or another diagnostic method you’d like me to try.
Let's start with keeping the service file removed. It does no good. That crash isn't really a crash it's just Qt saying the environment is incorrect. Once that is done you can try to reproduce the freeze again. Once you have the freeze you can quickly run this command: killall -ABRT xdg-desktop-portal-kde it should end up "fake" crashing our portal UI and give us a look at what it was stuck on. Copy the developer information from the crash dialog into this bug report.
I reproduced the freeze and ran killall -ABRT xdg-desktop-portal-kde as instructed. I also confirm that I deleted the ~/.config/systemd/user/xdg-desktop-portal-kde.service file we had previously created — the override is no longer present. Here’s the backtrace from coredumpctl gdb: #0 __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56 #1 0x00007f5bdd8a1fda in __internal_syscall_cancel (...) #2 0x00007f5bdd8a2024 in __syscall_cancel (...) #3 0x00007f5bdd91c5a6 in __GI_ppoll (...) #4 0x00007f5bdc309e04 in ppoll (...) #5 g_main_context_poll_unlocked (...) #6 g_main_context_iterate_unlocked (...) #7 0x00007f5bdc309ee5 in g_main_context_iteration (...) #8 0x00007f5bde23c5e2 in QEventDispatcherGlib::processEvents (...) #9 0x00007f5bddf744b6 in QEventLoop::processEvents (...) #10 QEventLoop::exec (...) #11 0x00007f5bddf6c7c1 in QCoreApplication::exec (...) #12 0x00007f5bdf0fc6aa in QApplication::exec (...) #13 0x000055bc7f91bff7 in main (...) at xdg-desktop-portal-kde.cpp:68 Let me know if you’d like the full backtrace with all threads.
We always like full backtraces :D That said, in this case it seems useless. According to the trace the process wasn't busy doing anything. Do you see anything logged in journalctl when the freeze happens?
(In reply to Harald Sitter from comment #8) > We always like full backtraces :D > > That said, in this case it seems useless. According to the trace the process > wasn't busy doing anything. > > Do you see anything logged in journalctl when the freeze happens? journalctl output from just after the freeze: juil. 08 12:09:18 sean-laptop plasmashell[1210]: qrc:/qt/qml/org/kde/plasma/private/clipboard/UrlItemDelegate.qml:49:17: TypeError: Cannot read property 'height' of null juil. 08 12:10:14 sean-laptop konsole[2941]: kf.windowsystem: static int KX11Extras::currentDesktop() may only be used on X11 juil. 08 12:10:19 sean-laptop konsole[4164]: QLayout: Cannot add a null widget to QHBoxLayout/ juil. 08 12:10:25 sean-laptop systemd[968]: plasma-xdg-desktop-portal-kde.service: Main process exited, code=dumped, status=6/ABRT juil. 08 12:10:25 sean-laptop systemd[968]: plasma-xdg-desktop-portal-kde.service: Failed with result 'core-dump'. juil. 08 12:10:26 sean-laptop systemd[968]: Started Xdg Desktop Portal For KDE. There were no relevant errors logged immediately at the moment of freeze—just routine QML warnings and unrelated Akonadi/Plasma messages. Let me know what you'd like me to try next. Thanks!
I guess what we can try is: - install https://flathub.org/apps/org.freedesktop.Bustle - start it - record the session bus (top left button) - trigger the freeze - wait for the freeze to end - in bustle hit the stop button - save the log as pcap (ctrl+s shortcut) - send the pcap to sitter@kde.org (it may contain sensitive information -- it's a recording of all inter process communication)
I just realized that xdg-desktop-portal-kde shouldn't be involved here. please post the output of the command > env and then start kate, freeze it, and trigger a crash while it is frozen > killall -ABRT kate please post the developer information from that crash as well.
(In reply to Harald Sitter from comment #11) > I just realized that xdg-desktop-portal-kde shouldn't be involved here. > > please post the output of the command > > > env > > and then start kate, freeze it, and trigger a crash while it is frozen > > > killall -ABRT kate > > please post the developer information from that crash as well. Here is env : SHELL=/bin/bash SESSION_MANAGER=local/sean-laptop:@/tmp/.ICE-unix/1196,unix/sean-laptop:/tmp/.ICE-unix/1196 WINDOWID=94116858423840 COLORTERM=truecolor XDG_CONFIG_DIRS=/home/sean/.config/kdedefaults:/etc/xdg XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session1 XDG_MENU_PREFIX=plasma- ICEAUTHORITY=/run/user/1000/iceauth_bIoXOv LANGUAGE= LC_ADDRESS=fr_FR.UTF-8 LC_NAME=fr_FR.UTF-8 force_s3tc_enable=true GRADLE_HOME=/usr/share/java/gradle SHELL_SESSION_ID=43db3e2cba24462882b45e25aa2cbb30 MEMORY_PRESSURE_WRITE=c29tZSAyMDAwMDAgMjAwMDAwMAA= DESKTOP_SESSION=plasma LC_MONETARY=fr_FR.UTF-8 GTK_RC_FILES=/etc/gtk/gtkrc:/home/sean/.gtkrc:/home/sean/.config/gtkrc EDITOR=nano XDG_SEAT=seat0 PWD=/home/sean XDG_SESSION_DESKTOP=KDE LOGNAME=sean XDG_SESSION_TYPE=wayland SYSTEMD_EXEC_PID=1234 XAUTHORITY=/run/user/1000/xauth_XkCjCi MOTD_SHOWN=pam GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/sean/.gtkrc-2.0:/home/sean/.config/gtkrc-2.0 HOME=/home/sean LC_PAPER=fr_FR.UTF-8 LANG=fr_FR.UTF-8 XDG_CURRENT_DESKTOP=KDE KONSOLE_DBUS_SERVICE=:1.116 MEMORY_PRESSURE_WATCH=/sys/fs/cgroup/user.slice/user-1000.slice/user@1000.service/session.slice/plasma-plasmashell.service/memory.pressure WAYLAND_DISPLAY=wayland-0 KONSOLE_DBUS_SESSION=/Sessions/1 PROFILEHOME= XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0 LIBVA_MESSAGING_LEVEL=1 INVOCATION_ID=98481dc57bb24385848cbfe2165f7536 KONSOLE_VERSION=250403 MANAGERPID=1004 KDE_SESSION_UID=1000 XKB_DEFAULT_LAYOUT=fr XDG_SESSION_CLASS=user TERM=xterm-256color LC_IDENTIFICATION=fr_FR.UTF-8 USER=sean COLORFGBG=15;0 QT_WAYLAND_RECONNECT=1 KDE_SESSION_VERSION=6 PAM_KWALLET5_LOGIN=/run/user/1000/kwallet5.socket DISPLAY=:1 SHLVL=1 LC_TELEPHONE=fr_FR.UTF-8 LC_MEASUREMENT=fr_FR.UTF-8 XDG_VTNR=1 XDG_SESSION_ID=2 XDG_RUNTIME_DIR=/run/user/1000 DEBUGINFOD_URLS=https://debuginfod.archlinux.org LC_TIME=fr_FR.UTF-8 JOURNAL_STREAM=9:15568 KDE_FULL_SESSION=true BROWSER=firefox PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus KDE_APPLICATIONS_AS_SCOPE=1 MAIL=/var/spool/mail/sean LC_NUMERIC=fr_FR.UTF-8 KONSOLE_DBUS_WINDOW=/Windows/1 _=/usr/bin/env The backtrace for kate file dialog freeze on close + triggered crash : #0 __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56 #1 0x00007f50fc4a1fda in __internal_syscall_cancel (a1=<optimized out>, a2=a2@entry=0, a3=a3@entry=0, a4=a4@entry=0, a5=a5@entry=0, a6=a6@entry=0, nr=75) at cancellation.c:49 #2 0x00007f50fc4a2024 in __syscall_cancel (a1=<optimized out>, a2=a2@entry=0, a3=a3@entry=0, a4=a4@entry=0, a5=a5@entry=0, a6=a6@entry=0, nr=75) at cancellation.c:75 #3 0x00007f50fc51ef82 in __GI_fdatasync (fd=<optimized out>) at ../sysdeps/unix/sysv/linux/fdatasync.c:28 #4 0x00007f50fcb27d56 in QFSFileEnginePrivate::nativeSyncToDisk ( this=0x5627075424d0) at /usr/src/debug/qt6-base/qtbase/src/corelib/io/qfsfileengine_unix.cpp:163 #5 QFSFileEngine::syncToDisk (this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/io/qfsfileengine.cpp:427 #6 0x00007f50fcb3ecf2 in QSaveFile::commit (this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/io/qsavefile.cpp:304 #7 0x00007f50fcda2019 in QConfFileSettingsPrivate::syncConfFile ( this=this@entry=0x562708ce32c0, confFile=0x562707c75ea0) at /usr/src/debug/qt6-base/qtbase/src/corelib/io/qsettings.cpp:1495 #8 0x00007f50fcda292f in QConfFileSettingsPrivate::sync (this=0x562708ce32c0) at /usr/src/debug/qt6-base/qtbase/src/corelib/io/qsettings.cpp:1304 #9 0x00007f50fcda480d in QConfFileSettingsPrivate::flush (this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/io/qsettings.cpp:1310 #10 QSettings::~QSettings (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/io/qsettings.cpp:2742 #11 0x00007f50fdfc608e in QFileDialogPrivate::saveSettings (this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/widgets/dialogs/qfiledialog.cpp:2824 #12 0x00007f50fdfb62af in QFileDialog::~QFileDialog (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/widgets/dialogs/qfiledialog.cpp:378 #13 0x00007f50fdfc20dd in QFileDialog::~QFileDialog (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/widgets/dialogs/qfiledialog.cpp:374 #14 QAutoPointer<QFileDialog>::~QAutoPointer (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/widgets/dialogs/qdialog_p.h:109 #15 QFileDialog::getOpenFileUrls (parent=<optimized out>, caption=..., dir=..., filter=..., selectedFilter=selectedFilter@entry=0x0, options=..., supportedSchemes=...) at /usr/src/debug/qt6-base/qtbase/src/widgets/dialogs/qfiledialog.cpp:2266 --Type <RET> for more, q to quit, c to continue without paging-- #16 0x00007f50fe68126f in KateViewManager::slotDocumentOpen (this=0x562707125960) at /usr/src/debug/kate/kate-25.04.3/apps/lib/kateviewmanager.cpp:365 #17 0x00007f50fcbd37ef in QtPrivate::QSlotObjectBase::call (this=<optimized out>, r=<optimized out>, a=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461 #18 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4146 #19 0x00007f50fd8073c0 in QMetaObject::activate<void, bool> ( sender=<optimized out>, mo=<optimized out>, local_signal_index=<optimized out>, ret=<optimized out>, sender=<optimized out>, mo=<optimized out>, local_signal_index=<optimized out>, ret=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs.h:306 #20 QAction::triggered (this=<optimized out>, _t1=<optimized out>) at /usr/src/debug/qt6-base/build/src/gui/Gui_autogen/include/moc_qaction.cpp:372 #21 QAction::activate (this=0x5627075817e0, event=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/gui/kernel/qaction.cpp:1104 #22 0x00007f50fde424ad in QAbstractButtonPrivate::click ( this=this@entry=0x5627073429a0) at /usr/src/debug/qt6-base/qtbase/src/widgets/widgets/qabstractbutton.cpp:364 #23 0x00007f50fde426c1 in QAbstractButton::mouseReleaseEvent (this=0x5627073603f0, e=0x5627083474b0) at /usr/src/debug/qt6-base/qtbase/src/widgets/widgets/qabstractbutton.cpp:976 #24 0x00007f50fdf85e61 in QToolButton::mouseReleaseEvent (this=0x5627073603f0, e=0x5627083474b0) at /usr/src/debug/qt6-base/qtbase/src/widgets/widgets/qtoolbutton.cpp:588 #25 0x00007f50fdd5b6c7 in QWidget::event (this=0x5627073603f0, event=0x5627083474b0) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qwidget.cpp:8987 #26 0x00007f50fdd01c70 in QApplicationPrivate::notify_helper ( this=this@entry=0x5627068a1210, receiver=receiver@entry=0x5627073603f0, e=e@entry=0x5627083474b0) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3303 #27 0x00007f50fdd05c39 in QApplication::notify (this=<optimized out>, receiver=<optimized out>, e=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:2780 #28 0x00007f50fcb68118 in QCoreApplication::notifyInternal2 ( receiver=0x5627073603f0, event=event@entry=0x5627083474b0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1106 #29 0x00007f50fcb684fb in QCoreApplication::sendEvent (receiver=<optimized out>, event=0x5627083474b0) --Type <RET> for more, q to quit, c to continue without paging-- at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1546 #30 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x5627068757a0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1879 #31 0x00007f50fce3fcf8 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1733 #32 postEventSourceDispatch (s=0x5627068a10b0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:246 #33 0x00007f50fb67e87d in g_main_dispatch (context=0x7f50f0000f00) at ../glib/glib/gmain.c:3398 #34 0x00007f50fb67fcd7 in g_main_context_dispatch_unlocked (context=0x7f50f0000f00) at ../glib/glib/gmain.c:4249 #35 g_main_context_iterate_unlocked (context=context@entry=0x7f50f0000f00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4314 #36 0x00007f50fb67fee5 in g_main_context_iteration (context=0x7f50f0000f00, may_block=1) at ../glib/glib/gmain.c:4379 #37 0x00007f50fce3c5e2 in QEventDispatcherGlib::processEvents (this=0x5627068a2560, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:399 #38 0x00007f50fcb744b6 in QEventLoop::processEvents (this=0x7ffd7bd260a0, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:104 #39 QEventLoop::exec (this=0x7ffd7bd260a0, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:186 #40 0x00007f50fcb6c7c1 in QCoreApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1449 #41 0x00007f50fdcfc6aa in QApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:2570 #42 0x00005626df5a2ac9 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kate/kate-25.04.3/apps/kate/main.cpp:547 The trace was captured during the freeze, and it shows the application stuck in QSaveFile::commit(), specifically on fdatasync(), likely called during QFileDialog's cleanup. (according to ChatGPT). Thanks
🔧 Additional info about storage: /home is on a 1.8 TiB SSD, using EXT4, with ~182 GiB free (91% used). The system itself is on a 467.4 GiB NVMe SSD, with ~312 GiB free. No network shares, no FUSE filesystems, and no disk encryption (like LUKS) involved.
That is rather strange. Getting stuck on fdatasync there suggests you either have a kernel problem, or a filesystem problem, or a drive problem. But I think you'd notice either of those more prominently elsewhere. Please repeat the test so we can see if the backtrace is the same.
(In reply to Harald Sitter from comment #14) > That is rather strange. Getting stuck on fdatasync there suggests you either > have a kernel problem, or a filesystem problem, or a drive problem. But I > think you'd notice either of those more prominently elsewhere. > > Please repeat the test so we can see if the backtrace is the same. Here is the second test: #0 __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56 #1 0x00007ff7f5ea1fda in __internal_syscall_cancel (a1=<optimized out>, a2=a2@entry=0, a3=a3@entry=0, a4=a4@entry=0, a5=a5@entry=0, a6=a6@entry=0, nr=75) at cancellation.c:49 #2 0x00007ff7f5ea2024 in __syscall_cancel (a1=<optimized out>, a2=a2@entry=0, a3=a3@entry=0, a4=a4@entry=0, a5=a5@entry=0, a6=a6@entry=0, nr=75) at cancellation.c:75 #3 0x00007ff7f5f1ef82 in __GI_fdatasync (fd=<optimized out>) at ../sysdeps/unix/sysv/linux/fdatasync.c:28 #4 0x00007ff7f6527d56 in QFSFileEnginePrivate::nativeSyncToDisk ( this=0x55cc216fa6e0) at /usr/src/debug/qt6-base/qtbase/src/corelib/io/qfsfileengine_unix.cpp:163 #5 QFSFileEngine::syncToDisk (this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/io/qfsfileengine.cpp:427 #6 0x00007ff7f653ecf2 in QSaveFile::commit (this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/io/qsavefile.cpp:304 #7 0x00007ff7f67a2019 in QConfFileSettingsPrivate::syncConfFile ( this=this@entry=0x55cc21d637c0, confFile=0x55cc21e65560) at /usr/src/debug/qt6-base/qtbase/src/corelib/io/qsettings.cpp:1495 #8 0x00007ff7f67a292f in QConfFileSettingsPrivate::sync (this=0x55cc21d637c0) at /usr/src/debug/qt6-base/qtbase/src/corelib/io/qsettings.cpp:1304 #9 0x00007ff7f67a480d in QConfFileSettingsPrivate::flush (this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/io/qsettings.cpp:1310 #10 QSettings::~QSettings (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/io/qsettings.cpp:2742 #11 0x00007ff7f79c608e in QFileDialogPrivate::saveSettings (this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/widgets/dialogs/qfiledialog.cpp:2824 #12 0x00007ff7f79b62af in QFileDialog::~QFileDialog (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/widgets/dialogs/qfiledialog.cpp:378 #13 0x00007ff7f79c20dd in QFileDialog::~QFileDialog (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/widgets/dialogs/qfiledialog.cpp:374 #14 QAutoPointer<QFileDialog>::~QAutoPointer (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/widgets/dialogs/qdialog_p.h:109 #15 QFileDialog::getOpenFileUrls (parent=<optimized out>, caption=..., dir=..., filter=..., selectedFilter=selectedFilter@entry=0x0, options=..., supportedSchemes=...) at /usr/src/debug/qt6-base/qtbase/src/widgets/dialogs/qfiledialog.cpp:2266 --Type <RET> for more, q to quit, c to continue without paging-- #16 0x00007ff7f808726f in KateViewManager::slotDocumentOpen (this=0x55cc211682f0) at /usr/src/debug/kate/kate-25.04.3/apps/lib/kateviewmanager.cpp:365 #17 0x00007ff7f65d37ef in QtPrivate::QSlotObjectBase::call (this=<optimized out>, r=<optimized out>, a=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461 #18 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4146 #19 0x00007ff7f72073c0 in QMetaObject::activate<void, bool> ( sender=<optimized out>, mo=<optimized out>, local_signal_index=<optimized out>, ret=<optimized out>, sender=<optimized out>, mo=<optimized out>, local_signal_index=<optimized out>, ret=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs.h:306 #20 QAction::triggered (this=<optimized out>, _t1=<optimized out>) at /usr/src/debug/qt6-base/build/src/gui/Gui_autogen/include/moc_qaction.cpp:372 #21 QAction::activate (this=0x55cc214f8d70, event=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/gui/kernel/qaction.cpp:1104 #22 0x00007ff7f78424ad in QAbstractButtonPrivate::click ( this=this@entry=0x55cc213cb090) at /usr/src/debug/qt6-base/qtbase/src/widgets/widgets/qabstractbutton.cpp:364 #23 0x00007ff7f78426c1 in QAbstractButton::mouseReleaseEvent (this=0x55cc2141bcc0, e=0x55cc21f69df0) at /usr/src/debug/qt6-base/qtbase/src/widgets/widgets/qabstractbutton.cpp:976 #24 0x00007ff7f7985e61 in QToolButton::mouseReleaseEvent (this=0x55cc2141bcc0, e=0x55cc21f69df0) at /usr/src/debug/qt6-base/qtbase/src/widgets/widgets/qtoolbutton.cpp:588 #25 0x00007ff7f775b6c7 in QWidget::event (this=0x55cc2141bcc0, event=0x55cc21f69df0) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qwidget.cpp:8987 #26 0x00007ff7f7701c70 in QApplicationPrivate::notify_helper ( this=this@entry=0x55cc209be210, receiver=receiver@entry=0x55cc2141bcc0, e=e@entry=0x55cc21f69df0) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3303 #27 0x00007ff7f7705c39 in QApplication::notify (this=<optimized out>, receiver=<optimized out>, e=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:2780 #28 0x00007ff7f6568118 in QCoreApplication::notifyInternal2 ( receiver=0x55cc2141bcc0, event=event@entry=0x55cc21f69df0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1106 #29 0x00007ff7f65684fb in QCoreApplication::sendEvent (receiver=<optimized out>, event=0x55cc21f69df0) --Type <RET> for more, q to quit, c to continue without paging-- at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1546 #30 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x55cc209927a0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1879 #31 0x00007ff7f683fcf8 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1733 #32 postEventSourceDispatch (s=0x55cc209be0b0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:246 #33 0x00007ff7f507e87d in g_main_dispatch (context=0x7ff7e8000f00) at ../glib/glib/gmain.c:3398 #34 0x00007ff7f507fcd7 in g_main_context_dispatch_unlocked (context=0x7ff7e8000f00) at ../glib/glib/gmain.c:4249 #35 g_main_context_iterate_unlocked (context=context@entry=0x7ff7e8000f00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4314 #36 0x00007ff7f507fee5 in g_main_context_iteration (context=0x7ff7e8000f00, may_block=1) at ../glib/glib/gmain.c:4379 #37 0x00007ff7f683c5e2 in QEventDispatcherGlib::processEvents (this=0x55cc209bf560, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:399 #38 0x00007ff7f65744b6 in QEventLoop::processEvents (this=0x7ffe6cb95930, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:104 #39 QEventLoop::exec (this=0x7ffe6cb95930, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:186 #40 0x00007ff7f656c7c1 in QCoreApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1449 #41 0x00007ff7f76fc6aa in QApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:2570 #42 0x000055cbe5e62ac9 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kate/kate-25.04.3/apps/kate/main.cpp:547
Hi Harald, It seems the file ~/.config/QtProject.conf is completely screwed : [FileDialog] history=@Invalid() lastVisited=file:///home/sean/.config/ qtVersion=6.9.1 shortcuts=file:///home/sean/Bureau, file:///home/sean, file:///home/sean/TÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃ This goes on until line 3361 including a linec ontaining more than 140 841 caracters.
Thanks Harald for your help. I deleted ~/.config/QtProject.conf and rebooted, QtProject.conf was regenerated and the issue disppeared. I'll consider a donation to the KDE team as a gesture of gratitude. If you'd like me to give more information as to why it happened, let me know.
Cool. Do you have a backup of the file? To diagnose this properly we'll need some more information about it. Which one is the super long line? shortcuts=?
(In reply to Harald Sitter from comment #18) > Cool. Do you have a backup of the file? To diagnose this properly we'll need > some more information about it. > > Which one is the super long line? shortcuts=? Here is the corrupt file, it's 64MiB https://drive.google.com/drive/folders/1cARSMlGTsNwASXfT2ACdwUoVcDTktdzs?usp=sharing
Thanks. I believe this is the following Qt bug: https://bugreports.qt.io/browse/QTBUG-133804 I expect it will happen again if you are still regularly using Qt5 software, so maybe reset the file every once in a while until Qt has a fix for this.