https://bugs.kde.org/show_bug.cgi?id=434074
Bug ID: 434074 Summary: System Monitor segmentation faulted in QWidget::internalWinId() when terminating processes running as root Product: plasma-systemmonitor Version: 5.21.2 Platform: Fedora RPMs OS: Linux Status: REPORTED Severity: normal Priority: NOR Component: general Assignee: ksysguard-b...@kde.org Reporter: matthew.fagn...@utoronto.ca CC: ahiems...@heimr.nl, plasma-b...@kde.org Target Milestone: --- SUMMARY System Monitor 5.21.2 segmentation faulted in QWidget::internalWinId() at kernel/qwidget.h:222 in qt5-qtbase-5.15.2-13.fc34.x86_64 when terminating processes running as root. These crashes happened 4 of 4 times when running Plasma 5.21.2 on Wayland in a Fedora 34 KDE Plasma installation. I first noticed this crash after I stopped a backup with backintime and closed it. I saw rsync processes running as root still running in System Monitor, and I tried to terminate one rsync process. The second such crash happened when I tried to terminate the autostarted process /usr/bin/python3 -Es /usr/share/backintime/qt/serviceHelper.py from backintime. The trace below was from when I tried to terminate abrt-dump-journal-xorg which was running as root from the Processes screen by right clicking on abrt-dump-journal-xorg, selected Send Signal > Terminate, then End in the End Process box. The traces of the first 3 crashes looked the same. The crash happened before I guess that the KDE PolicyKit program would've appeared to prompt for a password. Application: System Monitor (plasma-systemmonitor), signal: Segmentation fault [KCrash Handler] #4 0x00007fe64771e72b in QWidget::internalWinId() const (this=0x557486073) at kernel/qwidget.h:222 #5 QWidget::effectiveWinId() const (this=0x557486073, this@entry=0x7ffff186b900) at kernel/qwidget.cpp:2462 #6 0x00007fe5e1e24931 in KAuth::Polkit1Backend::preAuthAction(QString const&, QWidget*) (this=<optimized out>, action=..., parent=0x7ffff186b900) at /usr/src/debug/kf5-kauth-5.79.0-2.fc34.x86_64/src/backends/polkit-1/Polkit1Backend.cpp:63 #7 0x00007fe64528f1cb in KAuth::ExecuteJob::Private::doExecuteAction() (this=0x5574870113b0) at /usr/src/debug/kf5-kauth-5.79.0-2.fc34.x86_64/src/kauthexecutejob.cpp:142 #8 0x00007fe646bf5257 in QObject::event(QEvent*) (this=0x557486963040, e=0x5574864ef780) at kernel/qobject.cpp:1314 #9 0x00007fe6476f4e73 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x557486963040, e=0x5574864ef780) at kernel/qapplication.cpp:3632 #10 0x00007fe646bcdf48 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x557486963040, event=0x5574864ef780) at kernel/qcoreapplication.cpp:1063 #11 0x00007fe646bd0c76 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x55748437bd80) at kernel/qcoreapplication.cpp:1817 #12 0x00007fe646c1ac57 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x5574843aa350) at kernel/qeventdispatcher_glib.cpp:277 #13 0x00007fe6456e43d7 in g_main_dispatch (context=0x5574843bbbd0) at ../glib/gmain.c:3337 #14 g_main_context_dispatch (context=0x5574843bbbd0) at ../glib/gmain.c:4055 #15 0x00007fe645738518 in g_main_context_iterate.constprop.0 (context=context@entry=0x5574843bbbd0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4131 #16 0x00007fe6456e1b13 in g_main_context_iteration (context=0x5574843bbbd0, may_block=1) at ../glib/gmain.c:4196 #17 0x00007fe646c1a6f8 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x5574843aa810, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #18 0x00007fe646bcc9b2 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7ffff186be50, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #19 0x00007fe647c7ef7e in KJob::exec() (this=this@entry=0x557486963040) at /usr/include/qt5/QtCore/qflags.h:121 #20 0x00007fe5e1982e82 in KSysGuard::ProcessController::Private::runKAuthAction(QString const&, QVector<int> const&, QMap<QString, QVariant> const&) (this=this@entry=0x557486073270, actionId=..., pids=..., options=...) at /usr/src/debug/libksysguard-5.21.2-1.fc34.x86_64/processcore/process_controller.cpp:269 #21 0x00007fe5e19832ad in KSysGuard::ProcessController::sendSignal(QVector<int> const&, int) (this=0x7ffff186bfd8, this@entry=0x557486073880, pids=..., signal=-242827368, signal@entry=15) at /usr/src/debug/libksysguard-5.21.2-1.fc34.x86_64/processcore/process_controller.cpp:86 #22 0x00007fe5e19838d6 in KSysGuard::ProcessController::sendSignal(QList<QVariant> const&, int) (this=0x557486073880, pids=<optimized out>, signal=15) at /usr/src/debug/libksysguard-5.21.2-1.fc34.x86_64/processcore/process_controller.cpp:100 #23 0x00007fe5e196e147 in KSysGuard::ProcessController::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=_o@entry=0x557486073880, _c=_c@entry=QMetaObject::InvokeMetaMethod, _id=_id@entry=2, _a=_a@entry=0x7ffff186c230) at /usr/src/debug/libksysguard-5.21.2-1.fc34.x86_64/x86_64-redhat-linux-gnu/processcore/processcore_autogen/EWIEGA46WW/moc_process_controller.cpp:165 #24 0x00007fe5e196e383 in KSysGuard::ProcessController::qt_metacall(QMetaObject::Call, int, void**) (this=0x557486073880, _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0x7ffff186c230) at /usr/src/debug/libksysguard-5.21.2-1.fc34.x86_64/x86_64-redhat-linux-gnu/processcore/processcore_autogen/EWIEGA46WW/moc_process_controller.cpp:282 #25 0x00007fe648122b25 in QQmlObjectOrGadget::metacall(QMetaObject::Call, int, void**) const (this=0x7ffff186c4d0, type=QMetaObject::InvokeMetaMethod, index=<optimized out>, argv=<optimized out>) at qml/qqmlobjectorgadget.cpp:51 #26 0x00007fe6480291cb in CallMethod (callType=<optimized out>, callArgs=0x7ffff186c2e0, engine=<optimized out>, argTypes=<optimized out>, argCount=<optimized out>, returnType=<optimized out>, index=<optimized out>, object=<optimized out>) at /usr/include/qt5/QtCore/qvarlengtharray.h:201 #27 CallPrecise(QQmlObjectOrGadget const&, QQmlPropertyData const&, QV4::ExecutionEngine*, QV4::CallData*, QMetaObject::Call) (object=..., data=..., engine=engine@entry=0x557484464f20, callArgs=callArgs@entry=0x7fe632258598, callType=callType@entry=QMetaObject::InvokeMetaMethod) at jsruntime/qv4qobjectwrapper.cpp:1569 #28 0x00007fe64802a27b in CallOverloaded (callType=QMetaObject::InvokeMetaMethod, propertyCache=0x7fe6245de680, callArgs=0x7fe632258598, engine=0x557484464f20, data=..., object=...) at jsruntime/qv4qobjectwrapper.cpp:1645 #29 QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const (this=<optimized out>, thisObject=<optimized out>, argv=<optimized out>, argc=<optimized out>) at jsruntime/qv4qobjectwrapper.cpp:2133 #30 0x00007fe648039d81 in QV4::Moth::VME::interpret(QV4::CppStackFrame*, QV4::ExecutionEngine*, char const*) (frame=0x7ffff186c8e0, engine=0x557484464f20, code=0x7fe632258540 "\300-\350\061\346\177") at jsruntime/qv4vme_moth.cpp:754 #31 0x00007fe64803d725 in QV4::Moth::VME::exec(QV4::CppStackFrame*, QV4::ExecutionEngine*) (frame=<optimized out>, engine=<optimized out>) at jsruntime/qv4vme_moth.cpp:463 #32 0x00007fe647fe058e in QV4::Function::call(QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext const*) (this=<optimized out>, thisObject=<optimized out>, argv=<optimized out>, argc=<optimized out>, context=<optimized out>) at jsruntime/qv4function.cpp:69 #33 0x00007fe64813a291 in QQmlJavaScriptExpression::evaluate(QV4::CallData*, bool*) (this=0x557486073690, callData=0x7fe6322584d0, isUndefined=0x0) at qml/qqmljavascriptexpression.cpp:212 #34 0x00007fe6480f5351 in QQmlBoundSignalExpression::evaluate(void**) (this=<optimized out>, a=<optimized out>) at qml/qqmlboundsignal.cpp:224 #35 0x00007fe6480f6d83 in QQmlBoundSignal_callback(QQmlNotifierEndpoint*, void**) (a=0x0, e=0x557486056d80) at ../../include/QtQml/5.15.2/QtQml/private/../../../../../src/qml/qml/qqmlboundsignalexpressionpointer_p.h:69 #36 QQmlBoundSignal_callback(QQmlNotifierEndpoint*, void**) (e=0x557486056d80, a=0x0) at qml/qqmlboundsignal.cpp:341 #37 0x00007fe64811a435 in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) (endpoint=<optimized out>, a=0x0) at qml/qqmlnotifier.cpp:104 #38 0x00007fe646bfe2fa in doActivate<false>(QObject*, int, void**) (sender=0x5574860393f0, signal_index=61, argv=0x0) at kernel/qobject.cpp:3778 #39 0x00007fe646bfe4b0 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffff186e5f0, r=<optimized out>, this=0x55748603d320) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #40 doActivate<false>(QObject*, int, void**) (sender=0x557486040110, signal_index=67, argv=0x7ffff186e5f0) at kernel/qobject.cpp:3886 #41 0x00007fe6347b6310 in QQuickDialogButtonBoxPrivate::handleClick() (this=<optimized out>) at /usr/src/debug/qt5-qtquickcontrols2-5.15.2-3.fc34.x86_64/src/quicktemplates2/qquickdialogbuttonbox.cpp:376 #42 0x00007fe646bfe4b0 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffff186e6f0, r=<optimized out>, this=0x55748604e4c0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #43 doActivate<false>(QObject*, int, void**) (sender=0x557486048bc0, signal_index=64, argv=0x7ffff186e6f0) at kernel/qobject.cpp:3886 #44 0x00007fe634795ea1 in QQuickAbstractButtonPrivate::handleRelease(QPointF const&) (this=0x557486048c80, point=...) at /usr/src/debug/qt5-qtquickcontrols2-5.15.2-3.fc34.x86_64/src/quicktemplates2/qquickabstractbutton.cpp:182 #45 0x00007fe6347b06f9 in QQuickControl::mouseReleaseEvent(QMouseEvent*) (this=<optimized out>, event=0x7ffff186eb50) at /usr/src/debug/qt5-qtquickcontrols2-5.15.2-3.fc34.x86_64/src/quicktemplates2/qquickcontrol.cpp:2151 #46 0x00007fe634b0f189 in QQuickItem::event(QEvent*) (this=0x557486048bc0, ev=0x7ffff186eb50) at items/qquickitem.cpp:8168 #47 0x00007fe6476f4e73 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x557486048bc0, e=0x7ffff186eb50) at kernel/qapplication.cpp:3632 #48 0x00007fe646bcdf48 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x557486048bc0, event=0x7ffff186eb50) at kernel/qcoreapplication.cpp:1063 #49 0x00007fe634b1d255 in QQuickWindowPrivate::deliverMouseEvent(QQuickPointerMouseEvent*) (this=this@entry=0x5574844e36f0, pointerEvent=0x557484c5f1e0) at items/qquickwindow.cpp:2020 #50 0x00007fe634b1dbe3 in QQuickWindowPrivate::deliverPointerEvent(QQuickPointerEvent*) (this=0x5574844e36f0, event=0x557484c5f1e0) at items/qquickwindow.cpp:2612 #51 0x00007fe6470a9fa5 in QWindow::event(QEvent*) (this=0x557484400c60, ev=<optimized out>) at kernel/qwindow.cpp:2438 #52 0x00007fe6476f4e73 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x557484400c60, e=0x7ffff186eb50) at kernel/qapplication.cpp:3632 #53 0x00007fe646bcdf48 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x557484400c60, event=0x7ffff186eb50) at kernel/qcoreapplication.cpp:1063 #54 0x00007fe64709ead8 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) (e=0x7fe5dc513fa0) at kernel/qguiapplication.cpp:2275 #55 0x00007fe6470805cc in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (flags=...) at kernel/qwindowsysteminterface.cpp:1169 #56 0x00007fe63587d014 in userEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib64/libQt5WaylandClient.so.5 #57 0x00007fe6456e43d7 in g_main_dispatch (context=0x5574843bbbd0) at ../glib/gmain.c:3337 #58 g_main_context_dispatch (context=0x5574843bbbd0) at ../glib/gmain.c:4055 #59 0x00007fe645738518 in g_main_context_iterate.constprop.0 (context=context@entry=0x5574843bbbd0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4131 #60 0x00007fe6456e1b13 in g_main_context_iteration (context=0x5574843bbbd0, may_block=1) at ../glib/gmain.c:4196 #61 0x00007fe646c1a6f8 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x5574843aa810, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #62 0x00007fe646bcc9b2 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffff186eee0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #63 0x00007fe646bd4544 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #64 0x0000557482b6098e in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/plasma-systemmonitor-5.21.2-1.fc34.x86_64/src/main.cpp:133 [Inferior 1 (process 9736) detached] STEPS TO REPRODUCE 1. Boot a Fedora 34 KDE Plasma installation updated to 2021-3-6 with updates-testing enabled 2. Log in to Plasma 5.21.2 on Wayland 3. Install plasma-systemmonitor if it isn't already with sudo dnf install plasma-systemmonitor 4. Start system monitor 5. Select the Processes screen 6. Select Show: All processes 7. right click on abrt-dump-journal-xorg 8. select Send Signal > Terminate 9. select End in the End Process box. OBSERVED RESULT System Monitor segmentation faulted in QWidget::internalWinId() when terminating processes running as root EXPECTED RESULT System Monitor would allow one to enter a password to authenticate then terminate the process without crashing SOFTWARE/OS VERSIONS Linux/KDE Plasma: Fedora 34 (available in About System) KDE Plasma Version: 5.21.2 KDE Frameworks Version: 5.79.0 Qt Version: 5.15.2 ADDITIONAL INFORMATION drkonqi crashed twice when I was entering a description of what happened before the crashes in the "Information about the crash" box in a way like described at https://bugzilla.redhat.com/show_bug.cgi?id=1930946 -- You are receiving this mail because: You are watching all bug changes.