SUMMARY SystemdGenie hangs while refreshing the list after enabling/disabling or starting/stopping a system unit. STEPS TO REPRODUCE 1. Open SystemdGenie 2. Check the boxes to show inactive and unloaded 3. Enable a system unit 3. (alternative way) open a console and enter the command "systemctl status [unit name]" OBSERVED RESULT SystemdGenie hangs. EXPECTED RESULT SystemdGenie updates quickly the status of the enabled unit. SOFTWARE/OS VERSIONS SystemdGenie: 0.99.0 KDE Plasma Version: 6.0.4 KDE Frameworks Version: 6.1.0 Qt Version: 6.7.0 ADDITIONAL INFORMATION The systemd process cpu usage jumps to 100% while SystemdGenie hangs. systemctl status [unit name] shows quickly the updated unit status. That same command also hangs SystemdGenie if it wasn't already so.
Can you get a backtrace of what it's doing when it's hung? Run gdb attach -p $(pidof systemsettings) in a terminal window while it's hung If it says "--Type for more, q to quit, c to continue without paging--" at the bottom of the terminal window, press the "c" key. When you see a prompt that says "(gdb)", type "bt" and press the enter key. If it says "--Type for more, q to quit, c to continue without paging--" at the bottom of the terminal window, press the "c" key. Copy-and-paste the contents of the terminal window into a comment here. Thanks!
gdb systemdgenie allows to download symbols, otherwise the backtrace is useless. Note that since Plasma 6, SystemdGenie can only be used as a standalone app since it still uses Qt 5. Here's the backtrace: #0 0x00007ffff5e9f909 in ??? () at /usr/lib/libc.so.6 #1 0x00007ffff5ea2379 in pthread_cond_wait () at /usr/lib/libc.so.6 #2 0x00007ffff64eddf5 in QWaitConditionPrivate::wait (deadline=..., this=0x5555559296a0) at thread/qwaitcondition_unix.cpp:146 #3 QWaitCondition::wait (this=this@entry=0x555555929670, mutex=mutex@entry=0x555555929668, deadline=...) at thread/qwaitcondition_unix.cpp:225 #4 0x00007ffff7bdf3d7 in QDBusPendingCallPrivate::waitForFinished (this=0x555555929630) at /usr/src/debug/qt5-base/kde-qtbase/src/dbus/qdbuspendingcall.cpp:240 #5 0x00007ffff7bad76f in QDBusConnectionPrivate::sendWithReply (this=0x7fffec011eb0, message=<optimized out>, sendMode=1, timeout=<optimized out>) at /usr/src/debug/qt5-base/kde-qtbase/src/dbus/qdbusintegrator.cpp:2088 #6 0x00007ffff7ba1eec in QDBusConnection::call (this=0x555555d04118, message=<optimized out>, mode=<optimized out>, timeout=<optimized out>) at /usr/src/debug/qt5-base/kde-qtbase/src/dbus/qdbusconnection.cpp:680 #7 0x00007ffff7bb493f in QDBusAbstractInterface::callWithArgumentList (this=this@entry=0x5555558c4180, mode=QDBus::Block, mode@entry=QDBus::AutoDetect, method=..., args=...) at /usr/src/debug/qt5-base/kde-qtbase/src/dbus/qdbusabstractinterface.cpp:494 #8 0x00007ffff7bb521f in QDBusAbstractInterface::doCall (this=this@entry=0x5555558c4180, mode=mode@entry=QDBus::AutoDetect, method=..., args=args@entry=0x0, numArgs=numArgs@entry=0) at /usr/src/debug/qt5-base/kde-qtbase/src/dbus/qdbusabstractinterface.cpp:921 #9 0x000055555557c3b4 in QDBusAbstractInterface::call (method=..., mode=QDBus::AutoDetect, this=0x5555558c4180) at /usr/include/qt/QtDBus/qdbusabstractinterface.h:116 #10 MainWindow::callDbusMethod (this=this@entry=0x5555556d9c20, method=..., ifaceName=ifaceName@entry=sysdMgr, bus=bus@entry=sys, args=...) at /usr/src/debug/systemdgenie/systemdgenie-0.99.0/src/mainwindow.cpp:1780 #11 0x000055555557f337 in MainWindow::getUnitsFromDbus (this=0x5555556d9c20, bus=sys) at /usr/src/debug/systemdgenie/systemdgenie-0.99.0/src/mainwindow.cpp:1675 #12 0x0000555555576f57 in MainWindow::slotRefreshUnitsList (this=0x5555556d9c20, initial=false, bus=<optimized out>) at /usr/src/debug/systemdgenie/systemdgenie-0.99.0/src/mainwindow.cpp:559 #13 0x000055555556dce3 in MainWindow::qt_metacall (this=0x5555556d9c20, _c=QMetaObject::InvokeMetaMethod, _id=15, _a=0x7fffffffbe60) at /usr/src/debug/systemdgenie/build/src/systemdgenie_autogen/EWIEGA46WW/moc_mainwindow.cpp:298 #14 0x00007ffff7ba1866 in QDBusConnectionPrivate::deliverCall (this=<optimized out>, object=<optimized out>, msg=<optimized out>, metaTypes=<optimized out>, slotIdx=<optimized out>) at /usr/src/debug/qt5-base/kde-qtbase/src/dbus/qdbusintegrator.cpp:1001 #15 0x00007ffff66d55bc in QObject::event (this=0x5555556d9c20, e=0x7fffec02a3a0) at kernel/qobject.cpp:1347 #16 0x00007ffff7f3303e in KXmlGuiWindow::event (this=0x5555556d9c20, ev=0x7fffec02a3a0) at /usr/src/debug/kxmlgui5/kxmlgui-5.116.0/src/kxmlguiwindow.cpp:220 #17 0x00007ffff7356581 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x5555556d9c20, e=0x7fffec02a3a0) at kernel/qapplication.cpp:3640 #18 0x00007ffff66aee98 in QCoreApplication::notifyInternal2 (receiver=0x5555556d9c20, event=0x7fffec02a3a0) at kernel/qcoreapplication.cpp:1064 #19 0x00007ffff66aef03 in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1462 #20 0x00007ffff66af946 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x55555559c550) at kernel/qcoreapplication.cpp:1821 #21 0x00007ffff66fa0e0 in postEventSourceDispatch (s=0x5555556fdc70) at kernel/qeventdispatcher_glib.cpp:277 #22 0x00007ffff5232559 in g_main_dispatch (context=0x7fffec000ed0) at ../glib/glib/gmain.c:3357 #23 0x00007ffff5295257 in g_main_context_dispatch_unlocked (context=0x7fffec000ed0) at ../glib/glib/gmain.c:4208 #24 g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x7fffec000ed0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4273 #25 0x00007ffff5231a55 in g_main_context_iteration (context=0x7fffec000ed0, may_block=1) at ../glib/glib/gmain.c:4338 #26 0x00007ffff66fe16f in QEventDispatcherGlib::processEvents (this=0x5555556fc280, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #27 0x00007ffff66a6b5c in QEventLoop::exec (this=0x7fffffffc3d0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #28 0x00007ffff7cb4bbe in KJob::exec (this=this@entry=0x555555cfd970) at /usr/include/qt/QtCore/qflags.h:121 #29 0x0000555555572141 in MainWindow::authServiceAction (this=this@entry=0x5555556d9c20, service=..., path=..., iface=..., method=..., args=...) at /usr/src/debug/systemdgenie/systemdgenie-0.99.0/src/mainwindow.cpp:845 #30 0x0000555555578018 in MainWindow::slotExecuteUnitAction (this=0x5555556d9c20, method=...) at /usr/src/debug/systemdgenie/systemdgenie-0.99.0/src/mainwindow.cpp:1236 #31 0x00007ffff66e359e in QtPrivate::QSlotObjectBase::call (this=0x5555558fb990, r=0x5555556d9c20, a=0x7fffffffc6a0, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #32 doActivate<false> (sender=0x5555558f5330, signal_index=4, argv=0x7fffffffc6a0) at kernel/qobject.cpp:3925 #33 0x00007ffff66e3f8d in QSignalMapper::mapped (this=this@entry=0x5555558f5330, _t1=...) at .moc/moc_qsignalmapper.cpp:231 #34 0x00007ffff66e4158 in QSignalMapperPrivate::emitMappedValue<void (QSignalMapper::*)(QString const&), QHash<QObject*, QString> > (this=0x5555558f5350, sender=0x55555590d520, signal=(void (QSignalMapper::*)(QSignalMapper * const, const QString &)) 0x7ffff66e3dd0 <QSignalMapper::mappedString(QString const&)>, mappedValues=...) at kernel/qsignalmapper.cpp:67 #35 QSignalMapperPrivate::emitMappedValues (this=0x5555558f5350, sender=0x55555590d520) at kernel/qsignalmapper.cpp:77 #36 QSignalMapper::map (this=<optimized out>, sender=0x55555590d520) at kernel/qsignalmapper.cpp:288 #37 0x00007ffff66e359e in QtPrivate::QSlotObjectBase::call (this=0x55555590dab0, r=0x5555558f5330, a=0x7fffffffc7e0, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #38 doActivate<false> (sender=0x55555590d520, signal_index=4, argv=0x7fffffffc7e0) at kernel/qobject.cpp:3925 #39 0x00007ffff7349305 in QAction::triggered (this=this@entry=0x55555590d520, _t1=<optimized out>) at .moc/moc_qaction.cpp:376 #40 0x00007ffff734f030 in QAction::activate (this=0x55555590d520, event=<optimized out>) at kernel/qaction.cpp:1161 #41 0x00007ffff74e168b in QMenuPrivate::activateCausedStack (this=this@entry=0x555555b90760, causedStack=..., action=action@entry=0x55555590d520, action_e=action_e@entry=QAction::Trigger, self=self@entry=true) at widgets/qmenu.cpp:1384 #42 0x00007ffff74e17b4 in QMenuPrivate::activateAction (this=0x555555b90760, action=0x55555590d520, action_e=QAction::Trigger, self=true) at widgets/qmenu.cpp:1461 #43 0x00007ffff7390046 in QWidget::event (this=0x555555b90370, event=0x7fffffffce10) at kernel/qwidget.cpp:8671 #44 0x00007ffff7356581 in QApplicationPrivate::notify_helper (this=this@entry=0x5555555b43b0, receiver=receiver@entry=0x555555b90370, e=e@entry=0x7fffffffce10) at kernel/qapplication.cpp:3640 #45 0x00007ffff735c3e1 in QApplication::notify (this=<optimized out>, receiver=0x555555b90370, e=0x7fffffffce10) at kernel/qapplication.cpp:3084 #46 0x00007ffff66aee98 in QCoreApplication::notifyInternal2 (receiver=0x555555b90370, event=0x7fffffffce10) at kernel/qcoreapplication.cpp:1064 #47 0x00007ffff66aef23 in QCoreApplication::sendSpontaneousEvent (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1474 #48 0x00007ffff735a0f5 in QApplicationPrivate::sendMouseEvent (receiver=0x555555b90370, event=0x7fffffffce10, alienWidget=<optimized out>, nativeWidget=0x555555b90370, buttonDown=<optimized out>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at kernel/qapplication.cpp:2622 #49 0x00007ffff73aa055 in QWidgetWindow::handleMouseEvent (this=this@entry=0x555555c8dac0, event=event@entry=0x7fffffffd190) at kernel/qwidgetwindow.cpp:580 #50 0x00007ffff73ab817 in QWidgetWindow::event (this=0x555555c8dac0, event=0x7fffffffd190) at kernel/qwidgetwindow.cpp:300 #51 0x00007ffff7356581 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x555555c8dac0, e=0x7fffffffd190) at kernel/qapplication.cpp:3640 #52 0x00007ffff66aee98 in QCoreApplication::notifyInternal2 (receiver=0x555555c8dac0, event=0x7fffffffd190) at kernel/qcoreapplication.cpp:1064 #53 0x00007ffff66aef23 in QCoreApplication::sendSpontaneousEvent (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1474 #54 0x00007ffff6b3c260 in QGuiApplicationPrivate::processMouseEvent (e=0x555555c9e780) at kernel/qguiapplication.cpp:2285 #55 0x00007ffff6b1d2cd in QWindowSystemInterface::sendWindowSystemEvents (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1169 #56 0x00007ffff1ceaad8 in xcbSourceDispatch (source=<optimized out>) at /usr/src/debug/qt5-base/kde-qtbase/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:105 #57 0x00007ffff5232559 in g_main_dispatch (context=0x7fffec000ed0) at ../glib/glib/gmain.c:3357 #58 0x00007ffff5295257 in g_main_context_dispatch_unlocked (context=0x7fffec000ed0) at ../glib/glib/gmain.c:4208 #59 g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x7fffec000ed0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4273 #60 0x00007ffff5231a55 in g_main_context_iteration (context=0x7fffec000ed0, may_block=1) at ../glib/glib/gmain.c:4338 #61 0x00007ffff66fe16f in QEventDispatcherGlib::processEvents (this=0x5555556fc280, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #62 0x00007ffff66a6b5c in QEventLoop::exec (this=0x7fffffffd550, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #63 0x00007ffff66b305d in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #64 0x00007ffff6b2f7ff in QGuiApplication::exec () at kernel/qguiapplication.cpp:1870 #65 0x00007ffff7354a2a in QApplication::exec () at kernel/qapplication.cpp:2832 #66 0x0000555555568d80 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/systemdgenie/systemdgenie-0.99.0/src/main.cpp:79
This should get fixed by https://invent.kde.org/system/systemdgenie/-/merge_requests/15 (version 1.0.0)
The fix was merged 22-Feb. If you still see the hang, please re-open this report. Thanks.