SUMMARY I booted the Fedora Rawhide KDE live image Fedora-KDE-Live-x86_64-Rawhide-20240922.n.0.iso in a QEMU/KVM VM in GNOME Boxes in a Fedora 41 KDE installation. Plasma 6.1.90 on Wayland started. chargethresholdhelper crashed twice in ChargeThresholdHelper::getthreshold during Plasma startup when it was run automatically by dbus-:1.3-org.kde.powerdevil.chargethresholdhelper@0.service. Core was generated by `/usr/libexec/kf6/kauth/chargethresholdhelper'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x000055c549d06abe in ChargeThresholdHelper::getthreshold (this=<optimized out>, args=...) at /usr/src/debug/powerdevil-6.1.90-1.fc42.x86_64/daemon/chargethresholdhelper_linux.cpp:132 132 const int stopThreshold = *stopThresholdIt; [Current thread is 1 (Thread 0x7f8117cc3980 (LWP 2469))] (gdb) bt #0 0x000055c549d06abe in ChargeThresholdHelper::getthreshold (this=<optimized out>, args=...) at /usr/src/debug/powerdevil-6.1.90-1.fc42.x86_64/daemon/chargethresholdhelper_linux.cpp:132 #1 ChargeThresholdHelper::qt_static_metacall (_o=<optimized out>, _id=<optimized out>, _a=0x7ffffe4ded00, _c=<optimized out>) at /usr/src/debug/powerdevil-6.1.90-1.fc42.x86_64/redhat-linux-build/daemon/chargethresholdhelper_autogen/include/moc_chargethresholdhelper.cpp:111 #2 0x00007f81176fd8f1 in QMetaMethodInvoker::invokeImpl (self=..., target=0x55c56f2ae600, connectionType=connectionType@entry=Qt::DirectConnection, paramCount=paramCount@entry=2, parameters=parameters@entry=0x7ffffe4ded00, typeNames=0x7ffffe4ded10, metaTypes=0x7ffffe4ded20) at /usr/src/debug/qt6-qtbase-6.7.2-6.fc42.x86_64/src/corelib/kernel/qmetaobject.cpp:2754 #3 0x00007f81176fe3f1 in QMetaMethod::invokeImpl (self=..., target=<optimized out>, connectionType=connectionType@entry=Qt::DirectConnection, paramCount=paramCount@entry=2, parameters=parameters@entry=0x7ffffe4ded00, typeNames=0x7ffffe4ded10, metaTypes=0x7ffffe4ded20) at /usr/src/debug/qt6-qtbase-6.7.2-6.fc42.x86_64/src/corelib/kernel/qmetaobject.cpp:2592 #4 0x00007f8105090f4a in QMetaMethod::invoke<KAuth::ActionReply, QMetaMethodArgument> (c=<optimized out>, this=<optimized out>, obj=<optimized out>, r=...) at /usr/include/qt6/QtCore/qmetaobject.h:148 #5 KAuth::DBusHelperProxy::performAction (this=<optimized out>, action=..., details=..., arguments=..., fdArguments=..., callerID=...) at /usr/src/debug/kf6-kauth-6.6.0-1.fc42.x86_64/src/backends/dbus/DBusHelperProxy.cpp:283 #6 0x00007f8105091e06 in Kf6authAdaptor::performAction (callerID=..., this=0x55c56f2b2800, action=..., details=..., arguments=..., fdArguments=...) at /usr/src/debug/kf6-kauth-6.6.0-1.fc42.x86_64/redhat-linux-build/src/kf6authadaptor.cpp:39 #7 Kf6authAdaptor::qt_static_metacall (_o=_o@entry=0x55c56f2b2800, _id=_id@entry=1, _a=_a@entry=0x7ffffe4def88, _c=<optimized out>) at /usr/src/debug/kf6-kauth-6.6.0-1.fc42.x86_64/redhat-linux-build/src/moc_kf6authadaptor.cpp:145 #8 0x00007f8105092220 in Kf6authAdaptor::qt_static_metacall (_o=0x55c56f2b2800, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7ffffe4def88) at /usr/src/debug/kf6-kauth-6.6.0-1.fc42.x86_64/redhat-linux-build/src/moc_kf6authadaptor.cpp:138 #9 Kf6authAdaptor::qt_metacall (this=0x55c56f2b2800, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7ffffe4def88) at /usr/src/debug/kf6-kauth-6.6.0-1.fc42.x86_64/redhat-linux-build/src/moc_kf6authadaptor.cpp:182 #10 0x00007f8116f6b421 in QDBusConnectionPrivate::deliverCall (this=this@entry=0x7f8100009250, object=object@entry=0x55c56f2b2800, msg=..., metaTypes=..., slotIdx=5) at /usr/src/debug/qt6-qtbase-6.7.2-6.fc42.x86_64/src/dbus/qdbusintegrator.cpp:1007 #11 0x00007f8116f6ec48 in QDBusConnectionPrivate::activateCall (this=this@entry=0x7f8100009250, object=0x55c56f2b2800, flags=..., flags@entry=..., msg=...) at /usr/src/debug/qt6-qtbase-6.7.2-6.fc42.x86_64/src/dbus/qdbusintegrator.cpp:909 #12 0x00007f8116f6f341 in QDBusConnectionPrivate::activateObject (this=0x7f8100009250, node=..., msg=..., pathStartPos=<optimized out>) at /usr/src/debug/qt6-qtbase-6.7.2-6.fc42.x86_64/src/dbus/qdbusintegrator.cpp:1484 #13 0x00007f8116f7226a in QDBusActivateObjectEvent::placeMetaCall (this=0x7f810000ece0) at /usr/src/debug/qt6-qtbase-6.7.2-6.fc42.x86_64/src/dbus/qdbusintegrator.cpp:1604 --Type <RET> for more, q to quit, c to continue without paging--c #14 0x00007f811773dd4b in QObject::event (this=0x55c56f2f3b30, e=0x7f810000ece0) at /usr/src/debug/qt6-qtbase-6.7.2-6.fc42.x86_64/src/corelib/kernel/qobject.cpp:1452 #15 0x00007f81176e6de9 in doNotify (receiver=0x55c56f2f3b30, event=0x7f810000ece0) at /usr/src/debug/qt6-qtbase-6.7.2-6.fc42.x86_64/src/corelib/kernel/qcoreapplication.cpp:1243 #16 QCoreApplication::notify (this=<optimized out>, receiver=0x55c56f2f3b30, event=0x7f810000ece0) at /usr/src/debug/qt6-qtbase-6.7.2-6.fc42.x86_64/src/corelib/kernel/qcoreapplication.cpp:1226 #17 QCoreApplication::notifyInternal2 (receiver=0x55c56f2f3b30, event=0x7f810000ece0) at /usr/src/debug/qt6-qtbase-6.7.2-6.fc42.x86_64/src/corelib/kernel/qcoreapplication.cpp:1142 #18 0x00007f81176e706d in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>) at /usr/src/debug/qt6-qtbase-6.7.2-6.fc42.x86_64/src/corelib/kernel/qcoreapplication.cpp:1583 #19 0x00007f81176eabd1 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x55c56f2ae6a0) at /usr/src/debug/qt6-qtbase-6.7.2-6.fc42.x86_64/src/corelib/kernel/qcoreapplication.cpp:1940 #20 0x00007f81176eae7d in QCoreApplication::sendPostedEvents (receiver=<optimized out>, event_type=<optimized out>) at /usr/src/debug/qt6-qtbase-6.7.2-6.fc42.x86_64/src/corelib/kernel/qcoreapplication.cpp:1797 #21 0x00007f81179d586f in postEventSourceDispatch (s=0x55c56f2afee0) at /usr/src/debug/qt6-qtbase-6.7.2-6.fc42.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:244 #22 0x00007f81168f660c in g_main_context_dispatch_unlocked.lto_priv () from /lib64/libglib-2.0.so.0 #23 0x00007f8116956b78 in g_main_context_iterate_unlocked.isra () from /lib64/libglib-2.0.so.0 #24 0x00007f81168f7b03 in g_main_context_iteration () from /lib64/libglib-2.0.so.0 #25 0x00007f81179d5023 in QEventDispatcherGlib::processEvents (this=0x55c56f2afb60, flags=...) at /usr/src/debug/qt6-qtbase-6.7.2-6.fc42.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:394 #26 0x00007f81176f3b43 in QEventLoop::exec (this=this@entry=0x7ffffe4df820, flags=..., flags@entry=...) at /usr/src/debug/qt6-qtbase-6.7.2-6.fc42.x86_64/src/corelib/global/qflags.h:34 #27 0x00007f81176ef9fc in QCoreApplication::exec () at /usr/src/debug/qt6-qtbase-6.7.2-6.fc42.x86_64/src/corelib/global/qflags.h:74 #28 0x00007f8117df89e4 in KAuth::HelperSupport::helperMain (argc=<optimized out>, argv=<optimized out>, id=<optimized out>, responder=<optimized out>) at /usr/src/debug/kf6-kauth-6.6.0-1.fc42.x86_64/src/helpersupport.cpp:101 #29 0x00007f81170121c8 in __libc_start_call_main () from /lib64/libc.so.6 #30 0x00007f811701228b in __libc_start_main_impl () from /lib64/libc.so.6 #31 0x000055c549d03d85 in _start () The pointers stopThresholdIt and stopThresholds in ChargeThresholdHelper::getthreshold looked invalid. (gdb) p *stopThresholdIt Attempt to take address of value not located in memory. (gdb) p stopThresholdIt $2 = <optimized out> (gdb) p stopThresholds $1 = {d = {d = 0x55c56f2fadd0}} (gdb) p *stopThresholds Attempt to take address of value not located in memory. chargethresholdhelper crashed with the same trace when I selected Power Management in System Settings. This problem happened on 4/4 boots with this image in VMs and on bare metal. I didn't see this problem with Plasma 6.1.5 or earlier. STEPS TO REPRODUCE 1. Boot a Fedora 41 KDE installation 2. Log in to Plasma 6.1.5 on Wayland 3. Download the Fedora Rawhide KDE live image Fedora-KDE-Live-x86_64-Rawhide-20240922.n.0.iso from https://koji.fedoraproject.org/koji/buildinfo?buildID=2550880 4. Install GNOME Boxes if it isn't already with sudo dnf install gnome-boxes 5. Start GNOME Boxes 6. Boot Fedora-KDE-Live-x86_64-Rawhide-20240922.n.0.iso in a QEMU/KVM VM in GNOME Boxes OBSERVED RESULT chargethresholdhelper crashed in ChargeThresholdHelper::getthreshold with Plasma 6.1.90 EXPECTED RESULT chargethresholdhelper shouldn't have crashed SOFTWARE/OS VERSIONS Linux/KDE Plasma: Fedora Rawhide/42 KDE Plasma Version: 6.1.90 KDE Frameworks Version: 6.6.0 Qt Version: 6.7.2 ADDITIONAL INFORMATION
Lots of prior fixed crashes: https://bugs.kde.org/buglist.cgi?bug_status=RESOLVED&bug_status=NEEDSINFO&bug_status=VERIFIED&bug_status=CLOSED&f0=OP&f1=OP&f2=product&f3=component&f4=alias&f5=short_desc&f7=content&f8=CP&f9=CP&j1=OR&list_id=2846846&o2=substring&o3=substring&o4=substring&o5=substring&o6=substring&o7=matches&query_format=advanced&v2=ChargeThresholdHelper%3A%3Agetthreshold&v3=ChargeThresholdHelper%3A%3Agetthreshold&v4=ChargeThresholdHelper%3A%3Agetthreshold&v5=ChargeThresholdHelper%3A%3Agetthreshold&v6=ChargeThresholdHelper%3A%3Agetthreshold&v7=%22ChargeThresholdHelper%3A%3Agetthreshold%22
That's weird, we have a check in place to ensure that a threshold does exist so I currently don't see how it can reach that point without having a value.
does thins happen only when running on a VM?
I've seen this problem on bare metal as well as I mentioned. The threshold might have been set but the pointer stopThresholdIt might've been corrupted or pointed to an inaccessible address. I looked at a few of the reports in the search of Nate in comment 1, but I didn't see ChargeThresholdHelper::getthreshold in their comments. When I searched for ChargeThresholdHelper::getthreshold nothing was found a couple days ago. Thanks.
Same is happening with my baremetal installation after upgrade to 6.1.90 Operating System: Fedora Linux 41 KDE Plasma Version: 6.1.90 KDE Frameworks Version: 6.6.0 Qt Version: 6.7.2 Kernel Version: 6.11.0-63.fc41.x86_64 (64-bit) Graphics Platform: Wayland Processors: 8 × Intel® Core™ i7-3632QM CPU @ 2.20GHz Memory: 15.4 GiB of RAM Graphics Processor: Mesa Intel® HD Graphics 4000 PID: 11525 (chargethreshold) UID: 0 (root) GID: 0 (root) Signal: 11 (SEGV) Timestamp: Tue 2024-09-24 15:08:55 -03 (1h 39min ago) Command Line: /usr/libexec/kf6/kauth/chargethresholdhelper Executable: /usr/libexec/kf6/kauth/chargethresholdhelper Control Group: /system.slice/system-dbus\x2d:1.3\x2dorg.kde.powerdevil.chargethresholdhelper.slice/dbus-:1.3-org.kde.powerdevil.chargethresholdhelper@2.service Unit: dbus-:1.3-org.kde.powerdevil.chargethresholdhelper@2.service Slice: system-dbus\x2d:1.3\x2dorg.kde.powerdevil.chargethresholdhelper.slice Boot ID: 931fd089568a4c32bc0472cfb558d9ff Machine ID: 9fca7b934b0640838ecb94b41675382e Hostname: rivotril Storage: /var/lib/systemd/coredump/core.chargethreshold.0.931fd089568a4c32bc0472cfb558d9ff.11525.1727201335000000.zst (inaccessible) Package: powerdevil/6.1.90-1.fc41 build-id: e859affc2d5d3f7877dfc2856270e08b6faf1bd6 Message: Process 11525 (chargethreshold) of user 0 dumped core. Module kauth_helper_plugin.so from rpm kf6-kauth-6.6.0-1.fc41.x86_64 Module libbrotlicommon.so.1 from rpm brotli-1.1.0-5.fc41.x86_64 Module liblzma.so.5 from rpm xz-5.6.2-2.fc41.x86_64 Module libblkid.so.1 from rpm util-linux-2.40.2-4.fc41.x86_64 Module libbrotlidec.so.1 from rpm brotli-1.1.0-5.fc41.x86_64 Module libbz2.so.1 from rpm bzip2-1.0.8-19.fc41.x86_64 Module libgraphite2.so.3 from rpm graphite2-1.3.14-16.fc41.x86_64 Module libXext.so.6 from rpm libXext-1.3.6-2.fc41.x86_64 Module libxml2.so.2 from rpm libxml2-2.12.8-2.fc41.x86_64 Module libGLdispatch.so.0 from rpm libglvnd-1.7.0-5.fc41.x86_64 Module libXau.so.6 from rpm libXau-1.0.11-7.fc41.x86_64 Module libffi.so.8 from rpm libffi-3.4.6-3.fc41.x86_64 Module libselinux.so.1 from rpm libselinux-3.7-5.fc41.x86_64 Module libmount.so.1 from rpm util-linux-2.40.2-4.fc41.x86_64 Module libgmodule-2.0.so.0 from rpm glib2-2.82.0-1.fc41.x86_64 Module libfreetype.so.6 from rpm freetype-2.13.2-6.fc41.x86_64 Module libharfbuzz.so.0 from rpm harfbuzz-9.0.0-3.fc41.x86_64 Module libpng16.so.16 from rpm libpng-1.6.40-4.fc41.x86_64 Module libOpenGL.so.0 from rpm libglvnd-1.7.0-5.fc41.x86_64 Module libGLX.so.0 from rpm libglvnd-1.7.0-5.fc41.x86_64 Module libxkbcommon.so.0 from rpm libxkbcommon-1.7.0-4.fc41.x86_64 Module libfontconfig.so.1 from rpm fontconfig-2.15.0-8.fc41.x86_64 Module libEGL.so.1 from rpm libglvnd-1.7.0-5.fc41.x86_64 Module libxcb-keysyms.so.1 from rpm xcb-util-keysyms-0.4.1-6.fc41.x86_64 Module libXfixes.so.3 from rpm libXfixes-6.0.1-4.fc41.x86_64 Module libxcb-res.so.0 from rpm libxcb-1.17.0-2.fc41.x86_64 Module libxcb.so.1 from rpm libxcb-1.17.0-2.fc41.x86_64 Module libX11.so.6 from rpm libX11-1.8.10-2.fc41.x86_64 Module libgobject-2.0.so.0 from rpm glib2-2.82.0-1.fc41.x86_64 Module libgio-2.0.so.0 from rpm glib2-2.82.0-1.fc41.x86_64 Module libpolkit-gobject-1.so.0 from rpm polkit-125-1.fc41.x86_64 Module libQt6Gui.so.6 from rpm qt6-qtbase-6.7.2-6.fc41.x86_64 Module libKF6WindowSystem.so.6 from rpm kf6-kwindowsystem-6.6.0-1.fc41.x86_64 Module libpolkit-qt6-core-1.so.1 from rpm polkit-qt-1-0.200.0-2.fc41.x86_64 Module kauth_backend_plugin.so from rpm kf6-kauth-6.6.0-1.fc41.x86_64 Module libdbus-1.so.3 from rpm dbus-1.14.10-4.fc41.x86_64 Module libcap.so.2 from rpm libcap-2.70-4.fc41.x86_64 Module libpcre2-8.so.0 from rpm pcre2-10.44-1.fc41.1.x86_64 Module libicudata.so.74 from rpm icu-74.2-2.fc41.x86_64 Module libudev.so.1 from rpm systemd-256.6-1.fc41.x86_64 Module libQt6DBus.so.6 from rpm qt6-qtbase-6.7.2-6.fc41.x86_64 Module libcrypto.so.3 from rpm openssl-3.2.2-7.fc41.x86_64 Module libpcre2-16.so.0 from rpm pcre2-10.44-1.fc41.1.x86_64 Module libb2.so.1 from rpm libb2-0.98.1-12.fc41.x86_64 Module libdouble-conversion.so.3 from rpm double-conversion-3.3.0-4.fc41.x86_64 Module libsystemd.so.0 from rpm systemd-256.6-1.fc41.x86_64 Module libz.so.1 from rpm zlib-ng-2.1.7-3.fc41.x86_64 Module libglib-2.0.so.0 from rpm glib2-2.82.0-1.fc41.x86_64 Module libzstd.so.1 from rpm zstd-1.5.6-2.fc41.x86_64 Module libicuuc.so.74 from rpm icu-74.2-2.fc41.x86_64 Module libicui18n.so.74 from rpm icu-74.2-2.fc41.x86_64 Module libKF6CoreAddons.so.6 from rpm kf6-kcoreaddons-6.6.0-1.fc41.x86_64 Module libQt6Core.so.6 from rpm qt6-qtbase-6.7.2-6.fc41.x86_64 Module libKF6AuthCore.so.6 from rpm kf6-kauth-6.6.0-1.fc41.x86_64 Module chargethresholdhelper from rpm powerdevil-6.1.90-1.fc41.x86_64
here's the backtrace: Reading symbols from /usr/libexec/kf6/kauth/chargethresholdhelper... This GDB supports auto-downloading debuginfo from the following URLs: <https://debuginfod.fedoraproject.org/> Enable debuginfod for this session? (y or [n]) y Debuginfod has been enabled. To make this setting permanent, add 'set debuginfod enabled on' to .gdbinit. Downloading separate debug info for /usr/libexec/kf6/kauth/chargethresholdhelper Reading symbols from /home/geraldo/.cache/debuginfod_client/e859affc2d5d3f7877dfc2856270e08b6faf1bd6/debuginfo... Downloading separate debug info for /home/geraldo/.cache/debuginfod_client/e859affc2d5d3f7877dfc2856270e08b6faf1bd6/debuginfo [New LWP 11525] [New LWP 11526] [New LWP 11529] [New LWP 11527] [New LWP 11528] Downloading separate debug info for /usr/lib64/qt6/plugins/kf6/kauth/backend/kauth_backend_plugin.so Downloading separate debug info for /lib64/libpolkit-qt6-core-1.so.1 Downloading separate debug info for /home/geraldo/.cache/debuginfod_client/9a2c52a3b1296d2c3ce7a4016d6a751bc5cadc3e/debuginfo Downloading separate debug info for /lib64/libpolkit-gobject-1.so.0 Downloading separate debug info for /home/geraldo/.cache/debuginfod_client/de1028c6983d448708912d59ea56c605123b608b/debuginfo Downloading separate debug info for /usr/lib64/qt6/plugins/kf6/kauth/helper/kauth_helper_plugin.so [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". Core was generated by `/usr/libexec/kf6/kauth/chargethresholdhelper'. Program terminated with signal SIGSEGV, Segmentation fault. Downloading source file /usr/src/debug/powerdevil-6.1.90-1.fc41.x86_64/daemon/chargethresholdhelper_linux.cpp #0 0x00005569ddec1abe in ChargeThresholdHelper::getthreshold (this=<optimized out>, args=...) --Type <RET> for more, q to quit, c to continue without paging-- at /usr/src/debug/powerdevil-6.1.90-1.fc41.x86_64/daemon/chargethresholdhelper_linux.cpp:132 132 const int stopThreshold = *stopThresholdIt; [Current thread is 1 (Thread 0x7fbc28698980 (LWP 11525))] (gdb)
Seeing the same here on this Fedora 40 box since updating to 6.2 beta (which has almost daily updates from the COPR I use) Process 141228 (chargethreshold) of user 0 terminated abnormally without generating a coredump. Operating System: Fedora Linux 40 KDE Plasma Version: 6.1.90 KDE Frameworks Version: 6.6.0 Qt Version: 6.7.2 Kernel Version: 6.10.11-200.fc40.x86_64 (64-bit) Graphics Platform: Wayland Processors: 12 × AMD Ryzen 5 5600G with Radeon Graphics Memory: 29.2 GiB of RAM
A possibly relevant merge request was started @ https://invent.kde.org/plasma/powerdevil/-/merge_requests/429
Git commit 0b708921b543974650202600b9f01e4957d178de by Alessandro Astone. Committed on 24/09/2024 at 21:16. Pushed by aleasto into branch 'master'. daemon: Do not compare const and non-const QMap iterator This is supposed to be valid C++ 20 [1], and yet it fails comparison. [1]: https://isocpp.org/files/papers/N4860.pdf, § 22.2.1 [container.requirements.general] p7 M +1 -1 daemon/chargethresholdhelper_linux.cpp https://invent.kde.org/plasma/powerdevil/-/commit/0b708921b543974650202600b9f01e4957d178de
Git commit 950ba15e9b38e4214a1877b8f035f999c1a0db89 by Alessandro Astone. Committed on 24/09/2024 at 21:26. Pushed by aleasto into branch 'Plasma/6.2'. daemon: Do not compare const and non-const QMap iterator This is supposed to be valid C++ 20 [1], and yet it fails comparison. [1]: https://isocpp.org/files/papers/N4860.pdf, § 22.2.1 [container.requirements.general] p7 (cherry picked from commit 0b708921b543974650202600b9f01e4957d178de) M +1 -1 daemon/chargethresholdhelper_linux.cpp https://invent.kde.org/plasma/powerdevil/-/commit/950ba15e9b38e4214a1877b8f035f999c1a0db89
Confirm fixed on this Fedora 40 box, thank you.