Created attachment 185440 [details] .svgz.bak is OK, .svgz.new crashes SUMMARY Around 6.0, plasmashell started to crash on startup with a tweaked theme. The untweaked theme works. Switching to the affected theme at runtime usually works. STEPS TO REPRODUCE 1. Install provided custom theme 2. Select theme using Plasma Style KCM 3. Start plasmashell OBSERVED RESULT Crash. EXPECTED RESULT No crash, new theme in effect. SOFTWARE/OS VERSIONS Operating System: Fedora Linux 41 KDE Plasma Version: 6.4.4 KDE Frameworks Version: 6.17.0 Qt Version: 6.8.3 Kernel Version: 6.17.0-0.rc6.49.fc43.x86_64 (64-bit) Graphics Platform: Wayland ADDITIONAL INFORMATION GDB log: [New Thread 0x7fffe77ff6c0 (LWP 16327)] [New Thread 0x7fffe69ff6c0 (LWP 16328)] [New Thread 0x7fffe61fe6c0 (LWP 16329)] [New Thread 0x7fffe56c56c0 (LWP 16330)] [New Thread 0x7fffe4e8f6c0 (LWP 16331)] [New Thread 0x7fffcd5ff6c0 (LWP 16332)] [Thread 0x7fffcd5ff6c0 (LWP 16332) exited] [Thread 0x7fffe4e8f6c0 (LWP 16331) exited] [New Thread 0x7fffe4e8f6c0 (LWP 16333)] [New Thread 0x7fffcd5ff6c0 (LWP 16334)] kf.svg: The theme ".customized1" uses the legacy metadata.desktop. Consider contacting the author and asking them update it to use the newer JSON format. kf.svg: The theme ".customized1" uses the legacy metadata.desktop. Consider contacting the author and asking them update it to use the newer JSON format. kf.plasma.core: The theme ".customized1" uses the legacy metadata.desktop. Consider contacting the author and asking them update it to use the newer JSON format. kf.plasma.core: The theme ".customized1" uses the legacy metadata.desktop. Consider contacting the author and asking them update it to use the newer JSON format. [New Thread 0x7fffccdfe6c0 (LWP 16353)] [New Thread 0x7fffbf9fd6c0 (LWP 16354)] [New Thread 0x7fffbe7b86c0 (LWP 16356)] [New Thread 0x7fffbd5736c0 (LWP 16357)] [New Thread 0x7fffabfff6c0 (LWP 16358)] kf.svg: The theme ".customized1" uses the legacy metadata.desktop. Consider contacting the author and asking them update it to use the newer JSON format. kf.plasma.quick: Applet preload policy set to 1 [New Thread 0x7fffa89ff6c0 (LWP 16371)] [New Thread 0x7fffa3fff6c0 (LWP 16372)] [Thread 0x7fffa3fff6c0 (LWP 16372) exited] [Thread 0x7fffa89ff6c0 (LWP 16371) exited] [New Thread 0x7fffa89ff6c0 (LWP 16374)] [New Thread 0x7fffa3fff6c0 (LWP 16375)] [New Thread 0x7fffa37fe6c0 (LWP 16376)] [New Thread 0x7fff97a0f6c0 (LWP 16379)] [New Thread 0x7fff959a96c0 (LWP 16384)] [New Thread 0x7fff9519d6c0 (LWP 16385)] [Thread 0x7fff9519d6c0 (LWP 16385) exited] [Thread 0x7fff959a96c0 (LWP 16384) exited] qt.svg: <input>:967:6: Could not resolve property: #radialGradient4857 qt.svg: <input>:967:6: Could not resolve property: #radialGradient4857 qt.svg: <input>:967:6: Could not resolve property: #radialGradient4857 qt.svg: <input>:967:6: Could not resolve property: #radialGradient4857 qt.svg: <input>:967:6: Could not resolve property: #radialGradient4857 qt.svg: <input>:967:6: Could not resolve property: #radialGradient4857 [New Thread 0x7fff959a96c0 (LWP 16386)] [New Thread 0x7fff9519d6c0 (LWP 16387)] [New Thread 0x7fff83fff6c0 (LWP 16388)] [New Thread 0x7fff837e06c0 (LWP 16389)] [Detaching after vfork from child process 16390] [New Thread 0x7fff82bdf6c0 (LWP 16393)] [Thread 0x7fff82bdf6c0 (LWP 16393) exited] [New Thread 0x7fff82bdf6c0 (LWP 16394)] [Thread 0x7fff82bdf6c0 (LWP 16394) exited] [New Thread 0x7fff82bdf6c0 (LWP 16395)] [New Thread 0x7fff823046c0 (LWP 16396)] [New Thread 0x7fff81aff6c0 (LWP 16397)] [New Thread 0x7fff812fd6c0 (LWP 16398)] [Thread 0x7fff812fd6c0 (LWP 16398) exited] [Thread 0x7fff81aff6c0 (LWP 16397) exited] [New Thread 0x7fff81aff6c0 (LWP 16399)] [New Thread 0x7fff812fd6c0 (LWP 16400)] [New Thread 0x7fff80ae76c0 (LWP 16401)] qt.svg: Duplicate unique style id: "yellow" qt.svg: Duplicate unique style id: "blue" qt.svg: Duplicate unique style id: "yellow" qt.svg: Duplicate unique style id: "blue" QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::setCompositionMode: Painter not active QPainter::setRenderHint: Painter must be active to set rendering hints QPainter::end: Painter not active, aborted QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::setCompositionMode: Painter not active QPainter::setRenderHint: Painter must be active to set rendering hints QPainter::end: Painter not active, aborted [LOTS of repeats] QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::setCompositionMode: Painter not active QPainter::setRenderHint: Painter must be active to set rendering hints QPainter::end: Painter not active, aborted Thread 33 "QSGRenderThread" received signal SIGSEGV, Segmentation fault. ========== Backtrace #0 0x00007ffff464c494 in __printf_buffer () at /lib64/libc.so.6 #1 0x00007ffff464f063 in __vfprintf_internal () at /lib64/libc.so.6 #2 0x00007ffff470ebc3 in __fprintf_chk () at /lib64/libc.so.6 #3 0x00007ffff4c71e7f in qDefaultMessageHandler(QtMsgType, QMessageLogContext const&, QString const&) () at /lib64/libQt6Core.so.6 #4 0x00007ffff4c6cfca in qt_message_print(QtMsgType, QMessageLogContext const&, QString const&) () at /lib64/libQt6Core.so.6 #5 0x00007ffff4c6d110 in qt_message(QtMsgType, QMessageLogContext const&, char const*, __va_list_tag*) () at /lib64/libQt6Core.so.6 #6 0x00007ffff4c1cbc5 in QMessageLogger::warning(char const*, ...) const () at /lib64/libQt6Core.so.6 #7 0x00007ffff568910e in QPainter::begin(QPaintDevice*) () at /lib64/libQt6Gui.so.6 #8 0x00007ffff7194e33 in KSvg::FrameSvgPrivate::generateFrameBackground (this=0x55555673d970, frame=...) at /usr/include/qt6/QtCore/qsharedpointer_impl.h:274 #9 KSvg::FrameSvgPrivate::generateBackground (this=0x55555673d970, frame=...) at /usr/src/debug/kf6-ksvg-6.17.0-1.fc41.x86_64/src/ksvg/framesvg.cpp:547 #10 0x00007ffff7195d6c in KSvg::FrameSvgPrivate::generateBackground (this=<optimized out>, frame=<optimized out>) at /usr/src/debug/kf6-ksvg-6.17.0-1.fc41.x86_64/src/ksvg/framesvg.cpp:599 #11 0x00007ffff719612c in KSvg::FrameSvgPrivate::alphaMask (this=this@entry=0x55555673d970) at /usr/src/debug/kf6-ksvg-6.17.0-1.fc41.x86_64/src/ksvg/framesvg.cpp:454 #12 0x00007ffff71941bf in KSvg::FrameSvgPrivate::generateBackground (this=0x55555673d970, frame=...) at /usr/src/debug/kf6-ksvg-6.17.0-1.fc41.x86_64/src/ksvg/framesvg.cpp:572 #13 0x00007ffff7195d6c in KSvg::FrameSvgPrivate::generateBackground (this=<optimized out>, frame=<optimized out>) at /usr/src/debug/kf6-ksvg-6.17.0-1.fc41.x86_64/src/ksvg/framesvg.cpp:599 #14 0x00007ffff719612c in KSvg::FrameSvgPrivate::alphaMask (this=this@entry=0x55555673d970) at /usr/src/debug/kf6-ksvg-6.17.0-1.fc41.x86_64/src/ksvg/framesvg.cpp:454 #15 0x00007ffff71941bf in KSvg::FrameSvgPrivate::generateBackground (this=0x55555673d970, frame=...) at /usr/src/debug/kf6-ksvg-6.17.0-1.fc41.x86_64/src/ksvg/framesvg.cpp:572 #16 0x00007ffff7195d6c in KSvg::FrameSvgPrivate::generateBackground (this=<optimized out>, frame=<optimized out>) at /usr/src/debug/kf6-ksvg-6.17.0-1.fc41.x86_64/src/ksvg/framesvg.cpp:599 #17 0x00007ffff719612c in KSvg::FrameSvgPrivate::alphaMask (this=this@entry=0x55555673d970) at /usr/src/debug/kf6-ksvg-6.17.0-1.fc41.x86_64/src/ksvg/framesvg.cpp:454 [OVER 9000 REPEATS] (this=<optimized out>, frame=<optimized out>) at /usr/src/debug/kf6-ksvg-6.17.0-1.fc41.x86_64/src/ksvg/framesvg.cpp:599 #31424 0x00007ffff719612c in KSvg::FrameSvgPrivate::alphaMask (this=this@entry=0x55555673d970) at /usr/src/debug/kf6-ksvg-6.17.0-1.fc41.x86_64/src/ksvg/framesvg.cpp:454 #31425 0x00007ffff71941bf in KSvg::FrameSvgPrivate::generateBackground (this=this@entry=0x55555673d970, frame=...) at /usr/src/debug/kf6-ksvg-6.17.0-1.fc41.x86_64/src/ksvg/framesvg.cpp:572 #31426 0x00007ffff71972c6 in KSvg::FrameSvgPrivate::generateBackground (this=0x55555673d970, frame=<optimized out>) at /usr/src/debug/kf6-ksvg-6.17.0-1.fc41.x86_64/src/ksvg/framesvg.cpp:395 #31427 KSvg::FrameSvg::framePixmap (this=0x55555673d880) at /usr/src/debug/kf6-ksvg-6.17.0-1.fc41.x86_64/src/ksvg/framesvg.cpp:395 #31428 0x00007fffe40228d5 in KSvg::FrameSvgItem::updatePaintNode (this=0x5555568189b0, oldNode=0x7fffc89e5110) at /usr/src/debug/kf6-ksvg-6.17.0-1.fc41.x86_64/src/declarativeimports/framesvgitem.cpp:665 #31429 0x00007ffff695efec in QQuickWindowPrivate::updateDirtyNode(QQuickItem*) () at /lib64/libQt6Quick.so.6 #31430 0x00007ffff695f81c in QQuickWindowPrivate::updateDirtyNodes() () at /lib64/libQt6Quick.so.6 #31431 0x00007ffff6963a88 in QQuickWindowPrivate::syncSceneGraph() () at /lib64/libQt6Quick.so.6 #31432 0x00007ffff6b91d88 in QSGRenderThread::sync(bool) () at /lib64/libQt6Quick.so.6 #31433 0x00007ffff6b93276 in QSGRenderThread::syncAndRender() () at /lib64/libQt6Quick.so.6 #31434 0x00007ffff6b94343 in QSGRenderThread::run() () at /lib64/libQt6Quick.so.6 #31435 0x00007ffff4eb9fe9 in QThreadPrivate::start(void*) () at /lib64/libQt6Core.so.6 #31436 0x00007ffff467e724 in start_thread () at /lib64/libc.so.6 #31437 0x00007ffff470280c in __clone3 () at /lib64/libc.so.6
Can confirm the crash. (Do note that the theme folder is hidden folder) Operating System: Fedora Linux 42 KDE Plasma Version: 6.5.80 KDE Frameworks Version: 6.19.0 Qt Version: 6.9.2 Kernel Version: 6.16.8-200.fc42.x86_64 (64-bit) Graphics Platform: Wayland Processors: 12 × AMD Ryzen 5 3600 6-Core Processor Memory: 16 GiB of RAM (15.5 GiB usable) Graphics Processor: AMD Radeon RX 6600
Looks like it gets stuck into a loop #0 0x00007f4e9eac123e in __tzset () at tzset.c:551 551 tzset_internal (1); [Current thread is 1 (Thread 0x7f4dfc92d6c0 (LWP 11766))] (gdb) bt #0 0x00007f4e9eac123e in __tzset () at tzset.c:551 #1 0x00007f4e9eac0015 in __GI_mktime (tp=0x7f4dfc12e1a0) at mktime.c:541 #2 0x00007f4e9f07a353 in qMkTime (when=when@entry=0x7f4dfc12e1a0) at /usr/src/debug/qt6-qtbase-6.9.2-1.fc42.x86_64/src/corelib/global/qtenvironmentvariables.cpp:363 #3 0x00007f4e9f23d3d6 in (anonymous namespace)::MkTimeResult::MkTimeResult (this=0x7f4dfc12e1a0, prior=...) at /usr/src/debug/qt6-qtbase-6.9.2-1.fc42.x86_64/src/corelib/time/qlocaltime.cpp:69 #4 (anonymous namespace)::resolveLocalTime (local=local@entry=1759404192, resolve=...) at /usr/src/debug/qt6-qtbase-6.9.2-1.fc42.x86_64/src/corelib/time/qlocaltime.cpp:369 #5 0x00007f4e9f23dfb2 in QLocalTime::mapLocalTime (local=local@entry=1759404192507, resolve=..., resolve@entry=...) at /usr/src/debug/qt6-qtbase-6.9.2-1.fc42.x86_64/src/corelib/time/qlocaltime.cpp:576 #6 0x00007f4e9f232667 in QDateTimePrivate::localStateAtMillis (millis=1759404192507, resolve=...) at /usr/src/debug/qt6-qtbase-6.9.2-1.fc42.x86_64/src/corelib/time/qdatetime.cpp:3008 #7 0x00007f4e9f233ff5 in QDateTime::toMSecsSinceEpoch (this=<optimized out>) at /usr/src/debug/qt6-qtbase-6.9.2-1.fc42.x86_64/src/corelib/time/qdatetime.cpp:4492 #8 0x00007f4e9f23413d in QDateTime::toSecsSinceEpoch (this=<optimized out>) at /usr/src/debug/qt6-qtbase-6.9.2-1.fc42.x86_64/src/corelib/time/qdatetime.cpp:4527 #9 0x00007f4ea28a566f in KSvg::ImageSetPrivate::findInCache (this=0x7f4e80001d00, key=..., pix=..., lastModified=1759385552) at /home/akseli/Repositories/kde/src/ksvg/src/ksvg/private/imageset_p.cpp:613 #10 0x00007f4ea285c6ac in KSvg::FrameSvgPrivate::generateBackground (this=0x20f4c830, frame=...) at /home/akseli/Repositories/kde/src/ksvg/src/ksvg/framesvg.cpp:538 #11 0x00007f4ea285bbcd in KSvg::FrameSvgPrivate::alphaMask (this=0x20f4c830) at /home/akseli/Repositories/kde/src/ksvg/src/ksvg/framesvg.cpp:460 #12 0x00007f4ea285cf23 in KSvg::FrameSvgPrivate::generateBackground (this=0x20f4c830, frame=...) at /home/akseli/Repositories/kde/src/ksvg/src/ksvg/framesvg.cpp:578 #13 0x00007f4ea285bbcd in KSvg::FrameSvgPrivate::alphaMask (this=0x20f4c830) at /home/akseli/Repositories/kde/src/ksvg/src/ksvg/framesvg.cpp:460 #14 0x00007f4ea285cf23 in KSvg::FrameSvgPrivate::generateBackground (this=0x20f4c830, frame=...) (The last two repeat forever.)
A possibly relevant merge request was started @ https://invent.kde.org/frameworks/ksvg/-/merge_requests/79
Git commit 4f0a228f37809b38e30e0bf258e639b5874e1532 by Marco Martin. Committed on 02/10/2025 at 10:18. Pushed by mart into branch 'master'. Use alphaMask for the overlay only when the svg actually has a mask alphaMask will fallback to generateBackground when there isn't actually a mask prefix in the framesvg causing an infinite recurstion Fallback to a full white rectangle as mask (which means all pixels allowed) when there is an overlay graphics but *not* a mask prefix Thix fixes a crash with some not perfectly well formed themes M +10 -1 src/ksvg/framesvg.cpp https://invent.kde.org/frameworks/ksvg/-/commit/4f0a228f37809b38e30e0bf258e639b5874e1532