Bug 478348 - Krunner crashes when starting due to SVG cache issues
Summary: Krunner crashes when starting due to SVG cache issues
Status: RESOLVED NOT A BUG
Alias: None
Product: libplasma
Classification: Frameworks and Libraries
Component: libplasma (show other bugs)
Version: 5.90.0
Platform: openSUSE Linux
: NOR crash
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords: qt6
Depends on:
Blocks:
 
Reported: 2023-12-10 13:58 UTC by Lach Sławomir
Modified: 2024-01-10 06:17 UTC (History)
5 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 Lach Sławomir 2023-12-10 13:58:57 UTC
SUMMARY
***
NOTE: If you are reporting a crash, please try to attach a backtrace with debug symbols.
See https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports
***

Did not start.

STEPS TO REPRODUCE
1. Press alt+space
2. Message that recipient disconnected to bus appear 
3. Message that krunner crash appear
4. No krunner window appear

OBSERVED RESULT
KRunner crash on it's window open

EXPECTED RESULT
Window popup

SOFTWARE/OS VERSIONS
Operating System: openSUSE Tumbleweed 20231208
KDE Plasma Version: 5.90.90
KDE Frameworks Version: 5.247.0
Qt Version: 6.6.1
Kernel Version: 6.6.3-1-default (64-bit)
Graphics Platform: Wayland
Processors: 8 × AMD Ryzen 7 4700U with Radeon Graphics
Memory: 15.0 GiB of RAM
Graphics Processor: AMD Radeon Graphics
Manufacturer: ASUSTeK COMPUTER INC.
Product Name: ZenBook UX562IQ_UM562IQ
System Version: 1.0

ADDITIONAL INFORMATION
Comment 1 Alexander Lohnau 2023-12-10 15:03:58 UTC
Can you please attach a stacktrace?
Comment 2 Lach Sławomir 2023-12-10 18:02:36 UTC
0x00007ffff734bb40 in QQmlType::QQmlType(QQmlType const&) () from /lib64/libQt6Qml.so.6
(gdb) backtrace
#0  0x00007ffff734bb40 in QQmlType::QQmlType(QQmlType const&) () at /lib64/libQt6Qml.so.6
#1  0x00007ffff735d263 in  () at /lib64/libQt6Qml.so.6
#2  0x00007ffff735d037 in  () at /lib64/libQt6Qml.so.6
#3  0x00007ffff735d037 in  () at /lib64/libQt6Qml.so.6
#4  0x00007ffff735d037 in  () at /lib64/libQt6Qml.so.6
#5  0x00007ffff735338f in  () at /lib64/libQt6Qml.so.6
#6  0x00007ffff7363690 in  () at /lib64/libQt6Qml.so.6
#7  0x00007ffff72a8ccb in QQmlDataBlob::tryDone() () at /lib64/libQt6Qml.so.6
#8  0x00007ffff73711b0 in QQmlTypeLoader::setData(QQmlRefPointer<QQmlDataBlob> const&, QQmlDataBlob::SourceCodeData const&) () at /lib64/libQt6Qml.so.6
#9  0x00007ffff73719ba in QQmlTypeLoader::setData(QQmlRefPointer<QQmlDataBlob> const&, QString const&) () at /lib64/libQt6Qml.so.6
#10 0x00007ffff73753f5 in QQmlTypeLoader::loadThread(QQmlRefPointer<QQmlDataBlob> const&) () at /lib64/libQt6Qml.so.6
#11 0x00007ffff7379465 in  () at /lib64/libQt6Qml.so.6
#12 0x00007ffff7278df4 in  () at /lib64/libQt6Qml.so.6
#13 0x00007ffff69c094e in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt6Widgets.so.6
#14 0x00007ffff57878b8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt6Core.so.6
#15 0x00007ffff5787c17 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib64/libQt6Core.so.6
#16 0x00007ffff59ad9e3 in  () at /lib64/libQt6Core.so.6
#17 0x00007ffff4684f30 in  () at /lib64/libglib-2.0.so.0
#18 0x00007ffff4686b58 in  () at /lib64/libglib-2.0.so.0
#19 0x00007ffff468720c in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#20 0x00007ffff59abc6c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt6Core.so.6
#21 0x00007ffff579211b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt6Core.so.6
#22 0x00007ffff58674a4 in QThread::exec() () at /lib64/libQt6Core.so.6
#23 0x00007ffff58e62c9 in  () at /lib64/libQt6Core.so.6
#24 0x00007ffff4e8ff44 in start_thread () at /lib64/libc.so.6
#25 0x00007ffff4f184cc in clone3 () at /lib64/libc.so.6

From thread, where segfault occur is sufficient?
Comment 3 Nate Graham 2023-12-11 22:21:26 UTC
Backtrace is all in Qt. I suspect a local DBus problem.
Comment 4 Lach Sławomir 2023-12-21 15:35:49 UTC
I do not known, how to debug. On DBus thread, there is nothing suspicious:
[Switching to thread 2 (Thread 0x7ffff1fff6c0 (LWP 19148))]
#0  0x00007ffff4f09d7f in poll () from /lib64/libc.so.6
(gdb) backtrace
#0  0x00007ffff4f09d7f in poll () at /lib64/libc.so.6
#1  0x00007ffff4686aff in  () at /lib64/libglib-2.0.so.0
#2  0x00007ffff468720c in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#3  0x00007ffff59abc6c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt6Core.so.6
#4  0x00007ffff579211b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
    at /lib64/libQt6Core.so.6
#5  0x00007ffff58674a4 in QThread::exec() () at /lib64/libQt6Core.so.6
#6  0x00007ffff7579c8a in  () at /lib64/libQt6DBus.so.6
#7  0x00007ffff58e62c9 in  () at /lib64/libQt6Core.so.6
#8  0x00007ffff4e8ff44 in start_thread () at /lib64/libc.so.6
#9  0x00007ffff4f184cc in clone3 () at /lib64/libc.so.6

It was inside pool, when segfault occur. Should I search in DBus configuration or debug dbus-daemon process, which ran inside my desktop session?
Comment 5 Lach Sławomir 2023-12-21 15:40:56 UTC
(In reply to Nate Graham from comment #3)
> Backtrace is all in Qt. I suspect a local DBus problem.

I do, what I should do at beginning: test on another user profile. It works. Now: to be sure if this is bug or something wrong in my profile. Where to start? Which file move to backup directory?
Comment 6 Lach Sławomir 2023-12-21 15:47:31 UTC
Hi.
strace -e open krunner

Did not working, however strace -e read krunner returning last information from read:
read(20, "[General]\nPinned=false\n\n[PlasmaR"..., 33706) = 33706

Problem was: I do not known, which files krunner needs, because -e open do not return any result. And 33706 is too many characters to see, what could be wrong. And yet: previously call to read could be problematic - krunner could set flag/variable based on content of other files or lines preceding.
Comment 7 Lach Sławomir 2023-12-21 16:20:17 UTC
I install glibc-debuginfo and debug for open. In next step, I was moving each file with path from open call, try to ran krunner in separate terminal emulator window and moving file back. Once moved /home/slawomir/.cache/ksvg-elements and try to launch krunner, it stuck (no messages in console), but further call fails also. But it brinks me simple idea to remove cache and it worked! Sorry for opening this ticket. At least, we cannot now discover what causes problems, because I removed old cache.
Comment 8 Alexander Lohnau 2024-01-10 06:17:34 UTC
> But it brinks me simple idea to remove cache and it worked! Sorry for opening this ticket. At least, we cannot now discover what causes problems, because I removed old cache.

Though I wonder if this is sth. that happened due to breakages while you still had the experimental KF6 versions installed or is a problem which might appear afterward. Maybe a crash handler like in ksycoca may make sense, which removes the cache if it fails to read it