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.

Reply via email to