Bug 512451

Summary: systemsettings crashes when clicking on "About this system"
Product: [Applications] systemsettings Reporter: Brent Spillner <spillner>
Component: generic-crashAssignee: Plasma Bugs List <plasma-bugs-null>
Status: REOPENED ---    
Severity: crash CC: kdedev
Priority: NOR    
Version First Reported In: 6.5.2   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:
Attachments: stderr output when clicking "About this System"
Shader compilation errors reported immediately prior to the crash

Description Brent Spillner 2025-11-21 22:26:59 UTC
Created attachment 187042 [details]
stderr output when clicking "About this System"

SUMMARY

After plasmashell has crashed and been restarted, clicking on "About this System" in systemsettings triggers an application crash with the stderr output copied below.  This does NOT happen when I first open a brand-new Plasma session, but it happens EVERY TIME I open systemsettings after I first wait for plasmashell to crash (see #512448) and then run "plasmashell --replace".  I'm not sure the crash is due to the replacement plasmashell itself, but probably triggered by whatever inconsistency in graphics pipeline state triggered the original plasmashell crash.

Nevertheless, it's hard to understand why the "About this System" module would be so much more fragile than the others.  Every other kcm module, including "Display & Monitor", continues to work normally after a plasmashell crash & restart.  I haven't yet inspected the code, but it seems likely that there are probably some unwarranted assumptions made (e.g. ignoring error codes or dereferencing a null pointer) when retrieving graphics pipeline info for the "About" display.

Interestingly, if I start systemsettings with the command "systemsettings kcm_about-distro", the "About this system" panel displays normally, with all information filled in (KDE Plasma Version: 6.5.2, KDE Frameworks Version: 6.20.0, Qt Version: 6.10.0, Kernel Version: 6.16.12 (64-bit), Graphics Platform: Wayland).  However, if I click to another module, and then back to "About this System", I get the crash.

Finally, it would probably be useful to add "kcm_about" as a component under which bugs in the systemsettings product may be filed (it does not appear in the current list).

STEPS TO REPRODUCE
1. Start a Plasma session
2. Open systemsettings, click on "About this System", observe system information
3. Wait for plasmashell to crash (cf. #512448)
4. Run "plasmashell --replace" to restore most Plasma functionality
5. Open systemsettings again
6. Explore other modules, observe normal behavior
7. Click on "About this System"
8. Observe an immediate application crash

OBSERVED RESULT
systemsettings crashes with a segmentation fault after dumping the contents of 45 different shader scripts (many of which are identical to each other) to stderr (see attachment)

EXPECTED RESULT
systemsettings should not crash when attempting to view system information.  Additionally, after systemsettings has reported failed compilation of one shader script, it's probably unnecessary to keep reproducing the contents of every failed script unless the user has specifically requested additional debugging information.  A note like "*** Failed to compile 44 additional shaders, use --dump-all to see details" would be adequate and improve the signal/noise ratio. 

SOFTWARE/OS VERSIONS
Linux: 6.16.12
KDE Plasma: 6.5.2 
KDE Frameworks: 6.20.0
Qt:  6.10.0
Wayland: 1.24
Graphics backend: in-kernel amdgpu driver, Mesa 25.3.0

ADDITIONAL INFORMATION:
When I first start systemsettings with no arguments, I get the following on stderr:

kf.kirigami.platform: Failed to find a Kirigami platform plugin for style "Fusion"
qrc:/kcm/kcm_landingpage/main.qml:26:5: QML FormLayout: Binding loop detected for property "wideMode":
qrc:/qt/qml/org/kde/kirigami/layouts/FormLayout.qml:72:5
qrc:/kcm/kcm_landingpage/main.qml:26:5: QML FormLayout: Binding loop detected for property "wideMode":
qrc:/qt/qml/org/kde/kirigami/layouts/FormLayout.qml:72:5

If I start it as "systemsettings kcm_about-distro", I get:

kf.kirigami.platform: Failed to find a Kirigami platform plugin for style "Fusion"
Physical device 0: 'AMD Radeon RX 6600 (RADV NAVI23)' 25.3.0 (api 1.4.328 vendor 0x1002 device 0x73FF type 2)
Physical device 0: 'llvmpipe (LLVM 21.1.5, 256 bits)' 25.3.0 (api 1.4.328 vendor 0x10005 device 0x0 type 4)
excess llvmpipe detected, ignoring
qrc:/kcm/kcm_about-distro/main.qml:76:9: QML FormLayout: Binding loop detected for property "wideMode":
qrc:/qt/qml/org/kde/kirigami/layouts/FormLayout.qml:72:5
kf.auth: Action "org.kde.kinfocenter.dmidecode.systeminformation" has no parentWindow, assuming QQuickWidgetOffscreenWindow(0x146ce050, name="QQuickWidgetOffscreenWindow")

When I click on "Display & Monitor", I get the following on stderr, but the configuration module appears to function normally:

qrc:/kcm/kcm_kscreen/RotationButton.qml:21:5: QML RotationButton: Binding loop detected for property "height"
qrc:/kcm/kcm_kscreen/RotationButton.qml:21:5: QML RotationButton: Binding loop detected for property "height"
qrc:/kcm/kcm_kscreen/RotationButton.qml:21:5: QML RotationButton: Binding loop detected for property "height"
qrc:/kcm/kcm_kscreen/RotationButton.qml:21:5: QML RotationButton: Binding loop detected for property "height"
qrc:/kcm/kcm_kscreen/RotationButton.qml:21:5: QML RotationButton: Binding loop detected for property "height"
qrc:/kcm/kcm_kscreen/RotationButton.qml:21:5: QML RotationButton: Binding loop detected for property "height"
qrc:/kcm/kcm_kscreen/RotationButton.qml:21:5: QML RotationButton: Binding loop detected for property "height"
qrc:/kcm/kcm_kscreen/RotationButton.qml:21:5: QML RotationButton: Binding loop detected for property "height"
qrc:/kcm/kcm_kscreen/RotationButton.qml:21:5: QML RotationButton: Binding loop detected for property "height"
qrc:/kcm/kcm_kscreen/RotationButton.qml:21:5: QML RotationButton: Binding loop detected for property "height"
qrc:/kcm/kcm_kscreen/RotationButton.qml:21:5: QML RotationButton: Binding loop detected for property "height"
qrc:/kcm/kcm_kscreen/RotationButton.qml:21:5: QML RotationButton: Binding loop detected for property "height"
qrc:/kcm/kcm_kscreen/RotationButton.qml:21:5: QML RotationButton: Binding loop detected for property "height"
qrc:/kcm/kcm_kscreen/RotationButton.qml:21:5: QML RotationButton: Binding loop detected for property "height"
qrc:/kcm/kcm_kscreen/RotationButton.qml:21:5: QML RotationButton: Binding loop detected for property "height"
qrc:/kcm/kcm_kscreen/RotationButton.qml:21:5: QML RotationButton: Binding loop detected for property "height"

As soon as I click on "About this System", I get the errors in the attached file, closing out with

Failed to build graphics pipeline state
kf.auth: Action "org.kde.kinfocenter.dmidecode.systeminformation" has no parentWindow, assuming QWidgetWindow(0xacc2d20, name="MainWindow#1Window")
Segmentation fault         systemsettings
Comment 1 TraceyC 2025-11-24 22:46:08 UTC
Thanks for the crash report. As the message at the top of the summary says, 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.
Comment 2 Bug Janitor Service 2025-12-09 03:45:57 UTC
๐Ÿ›๐Ÿงน โš ๏ธ This bug has been in NEEDSINFO status with no change for at least 15 days. Please provide the requested information, then set the bug status to REPORTED. If there is no change for at least 30 days, it will be automatically closed as RESOLVED WORKSFORME.

For more information about our bug triaging procedures, please read https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging.

Thank you for helping us make KDE software even better for everyone!
Comment 3 Bug Janitor Service 2025-12-24 03:46:39 UTC
๐Ÿ›๐Ÿงน This bug has been in NEEDSINFO status with no change for at least 30 days. Closing as RESOLVED WORKSFORME.
Comment 4 Brent Spillner 2025-12-24 16:01:40 UTC
Sorry, never saw your RFI.  The crash is still 100% reproducible for me on Plasma  6.5.4; the GDB backtrace is below and I'll attach the shader error output.  While I'm sure it's tempting to say "looks like a driver issue," I'm not having any other Gallium/OpenGL/Vulkan stability issues with other applications and games on this system, other than the intermittent Wayland protocol errors in plasmashell described in #507691 / #512448.  And it seems highly suspicious that the crash occurs only on the "About this System" tab, not in any other settings dialogs.

Thread 1 "systemsettings" received signal SIGSEGV, Segmentation fault.
0x00007fffb75bfb40 in ?? () from /usr/lib64/libgallium-25.3.1.so
(gdb) bt
#0  0x00007fffb75bfb40 in ??? () at /usr/lib64/libgallium-25.3.1.so
#1  0x00007fffb7534a25 in ??? () at /usr/lib64/libgallium-25.3.1.so
#2  0x00007ffff536f576 in ??? () at /usr/lib64/libQt6Gui.so.6
#3  0x00007ffff5370507 in ??? () at /usr/lib64/libQt6Gui.so.6
#4  0x00007ffff51bec8b in QRhi::endOffscreenFrame(QFlags<QRhi::EndFrameFlag>) () at /usr/lib64/libQt6Gui.so.6
#5  0x00007ffff76e4c83 in QQuickRenderControl::endFrame() () at /usr/lib64/libQt6Quick.so.6
#6  0x00007ffff7bde167 in ??? () at /usr/lib64/libQt6QuickWidgets.so.6
#7  0x00007ffff46fc6e5 in QObject::event(QEvent*) () at /usr/lib64/libQt6Core.so.6
#8  0x00007ffff5a11238 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt6Widgets.so.6
#9  0x00007ffff468ce98 in QCoreApplication::sendEvent(QObject*, QEvent*) () at /usr/lib64/libQt6Core.so.6
#10 0x00007ffff48a217c in QTimerInfoList::activateTimers() () at /usr/lib64/libQt6Core.so.6
#11 0x00007ffff4a1d27c in ??? () at /usr/lib64/libQt6Core.so.6
#12 0x00007ffff12ffb16 in ??? () at /usr/lib64/libglib-2.0.so.0
#13 0x00007ffff1302c1f in ??? () at /usr/lib64/libglib-2.0.so.0
#14 0x00007ffff130334c in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#15 0x00007ffff4a1d5b8 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt6Core.so.6
#16 0x00007ffff469b296 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt6Core.so.6
#17 0x00007ffff46951ac in QCoreApplication::exec() () at /usr/lib64/libQt6Core.so.6
#18 0x0000000000418106 in ??? ()
#19 0x00007ffff3db4d14 in __libc_start_call_main () at /lib64/libc.so.6
#20 0x00007ffff3db4dc6 in __libc_start_main_impl () at /lib64/libc.so.6
#21 0x0000000000418c31 in ??? ()
Comment 5 Brent Spillner 2025-12-24 16:02:54 UTC
Created attachment 187945 [details]
Shader compilation errors reported immediately prior to the crash