Bug 421016

Summary: System Settings crashes when I click on "Import" button of the new Global Shortcuts kcm
Product: [Applications] systemsettings Reporter: Patrick Silva <bugseforuns>
Component: kcm_keysAssignee: Michael Jansen <kde>
Status: RESOLVED FIXED    
Severity: crash CC: kde, nate, plasma-bugs
Priority: HI Keywords: drkonqi, regression
Version: unspecified   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Patrick Silva 2020-05-04 18:46:58 UTC
Application: systemsettings5 (5.18.80)

Qt Version: 5.14.2
Frameworks Version: 5.70.0
Operating System: Linux 5.3.0-45-generic x86_64
Windowing system: Wayland
Distribution: KDE neon Unstable Edition

-- Information about the crash:
- What I was doing when the application crashed:
open system settings > shortcuts
click on "Import scheme..." button, click on "Import" button
system settings crashes

The crash can be reproduced every time.

-- Backtrace:
Application: System Settings (systemsettings5), signal: Segmentation fault
Content of s_kcrashErrorMessage: [Current thread is 1 (Thread 0x7f2b13ba2800 (LWP 13840))]
[KCrash Handler]
#6  std::__atomic_base<int>::load (__m=std::memory_order_relaxed, this=0x69007400610073) at /usr/include/c++/7/bits/atomic_base.h:396
#7  QAtomicOps<int>::loadRelaxed<int> (_q_value=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic_cxx11.h:239
#8  QBasicAtomicInteger<int>::loadRelaxed (this=0x69007400610073) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:107
#9  QtPrivate::RefCount::deref (this=0x69007400610073) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qrefcount.h:66
#10 0x00007f2aeb2ad18f in QHash<QKeySequence, QHashDummyValue>::~QHash (this=<synthetic pointer>, __in_chrg=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qhash.h:250
#11 QHash<QKeySequence, QHashDummyValue>::operator= (other=..., this=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qhash.h:255
#12 QSet<QKeySequence>::operator= (this=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qset.h:53
#13 ShortcutsModel::setShortcuts (this=0x7f2af800b850, config=...) at ./kcms/keys/shortcutsmodel.cpp:408
#14 0x00007f2aeb29b033 in KCMKeys::loadScheme (this=0x5600f78918a0, url=...) at ./kcms/keys/kcm_keys.cpp:142
#15 0x00007f2aeb2b4b69 in KCMKeys::qt_static_metacall (_o=_o@entry=0x5600f78918a0, _c=_c@entry=QMetaObject::InvokeMetaMethod, _id=_id@entry=2, _a=_a@entry=0x7fffa65ef580) at ./obj-x86_64-linux-gnu/kcms/keys/kcm_keys_autogen/EWIEGA46WW/moc_kcm_keys.cpp:120
#16 0x00007f2aeb2b4db5 in KCMKeys::qt_metacall (this=0x5600f78918a0, _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0x7fffa65ef580) at ./obj-x86_64-linux-gnu/kcms/keys/kcm_keys_autogen/EWIEGA46WW/moc_kcm_keys.cpp:187
#17 0x00007f2b0d1db889 in QQmlObjectOrGadget::metacall (this=this@entry=0x7fffa65ef8c0, type=type@entry=QMetaObject::InvokeMetaMethod, index=<optimized out>, index@entry=32, argv=<optimized out>) at qml/qqmlobjectorgadget.cpp:51
#18 0x00007f2b0d0c8925 in CallMethod (object=..., index=<optimized out>, returnType=returnType@entry=43, argCount=<optimized out>, argTypes=<optimized out>, engine=engine@entry=0x5600f74f6230, callArgs=<optimized out>, callType=<optimized out>) at jsruntime/qv4qobjectwrapper.cpp:1300
#19 0x00007f2b0d0ca32e in CallPrecise (object=..., data=..., engine=engine@entry=0x5600f74f6230, callArgs=callArgs@entry=0x7f2aea650598, callType=callType@entry=QMetaObject::InvokeMetaMethod) at jsruntime/qv4qobjectwrapper.cpp:1565
#20 0x00007f2b0d0cafe1 in QV4::QObjectMethod::callInternal (this=<optimized out>, thisObject=0x7f2aea650538, argv=<optimized out>, argc=<optimized out>) at jsruntime/qv4qobjectwrapper.cpp:2127
#21 0x00007f2b0d0e7313 in QV4::FunctionObject::call (argc=<optimized out>, argv=<optimized out>, thisObject=<optimized out>, this=<optimized out>) at ../../include/QtQml/5.14.2/QtQml/private/../../../../../src/qml/jsruntime/qv4functionobject_p.h:202
#22 QV4::Moth::VME::interpret (frame=0x7fffa65efbb0, engine=0x5600f74f6230, code=0x7f2b13a82801 "/\001\001") at jsruntime/qv4vme_moth.cpp:754
#23 0x00007f2b0d0ea686 in QV4::Moth::VME::exec (frame=frame@entry=0x7fffa65efbb0, engine=engine@entry=0x5600f74f6230) at jsruntime/qv4vme_moth.cpp:463
#24 0x00007f2b0d07cfaa in QV4::Function::call (this=this@entry=0x5600f78ed4e0, thisObject=thisObject@entry=0x7f2aea6504e8, argv=argv@entry=0x7f2aea650500, argc=<optimized out>, context=<optimized out>) at jsruntime/qv4function.cpp:69
#25 0x00007f2b0d1fae57 in QQmlJavaScriptExpression::evaluate (this=this@entry=0x5600f7ae8c30, callData=callData@entry=0x7f2aea6504d0, isUndefined=isUndefined@entry=0x0) at qml/qqmljavascriptexpression.cpp:211
#26 0x00007f2b0d1a4f69 in QQmlBoundSignalExpression::evaluate (this=this@entry=0x5600f7ae8c30, a=a@entry=0x0) at qml/qqmlboundsignal.cpp:223
#27 0x00007f2b0d1a61bb in QQmlBoundSignal_callback (e=0x5600f7ae3190, a=0x0) at qml/qqmlboundsignal.cpp:356
#28 0x00007f2b0d1db322 in QQmlNotifier::emitNotify (endpoint=<optimized out>, a=a@entry=0x0) at qml/qqmlnotifier.cpp:104
#29 0x00007f2b0d189119 in QQmlData::signalEmitted (object=0x5600f7ae39c0, index=<optimized out>, a=0x0) at qml/qqmlengine.cpp:858
#30 0x00007f2b0f924f94 in doActivate<false> (sender=0x5600f7ae39c0, signal_index=64, argv=0x0) at kernel/qobject.cpp:3762
#31 0x00007f2b0f91fc12 in QMetaObject::activate (sender=<optimized out>, m=m@entry=0x7f2b017c8360 <QQuickAbstractButton::staticMetaObject>, local_signal_index=local_signal_index@entry=3, argv=argv@entry=0x0) at kernel/qobject.cpp:3930
#32 0x00007f2b01562823 in QQuickAbstractButton::clicked (this=<optimized out>) at .moc/moc_qquickabstractbutton_p.cpp:630
#33 0x00007f2b014dfcd6 in QQuickAbstractButtonPrivate::trigger (this=this@entry=0x5600f7ae3a80) at qquickabstractbutton.cpp:340
#34 0x00007f2b014e1b81 in QQuickAbstractButtonPrivate::handleRelease (this=0x5600f7ae3a80, point=...) at qquickabstractbutton.cpp:180
#35 0x00007f2b014ff7f5 in QQuickControl::mouseReleaseEvent (this=<optimized out>, event=0x7fffa65f2130) at qquickcontrol.cpp:2131
#36 0x00007f2b0d7d6258 in QQuickItem::event (this=0x5600f7ae39c0, ev=0x7fffa65f2130) at items/qquickitem.cpp:8153
#37 0x00007f2b10a689ac in QApplicationPrivate::notify_helper (this=this@entry=0x5600f73d8480, receiver=receiver@entry=0x5600f7ae39c0, e=e@entry=0x7fffa65f2130) at kernel/qapplication.cpp:3685
#38 0x00007f2b10a6fbb0 in QApplication::notify (this=0x7fffa65f30a0, receiver=0x5600f7ae39c0, e=0x7fffa65f2130) at kernel/qapplication.cpp:3431
#39 0x00007f2b0f8ea128 in QCoreApplication::notifyInternal2 (receiver=0x5600f7ae39c0, event=0x7fffa65f2130) at kernel/qcoreapplication.cpp:1075
#40 0x00007f2b0f8ea2fe in QCoreApplication::sendEvent (receiver=receiver@entry=0x5600f7ae39c0, event=event@entry=0x7fffa65f2130) at kernel/qcoreapplication.cpp:1470
#41 0x00007f2b0d7f044d in QQuickWindowPrivate::deliverMouseEvent (this=this@entry=0x5600f78f2c40, pointerEvent=0x5600f87bb2c0) at items/qquickwindow.cpp:1891
#42 0x00007f2b0d7f14b5 in QQuickWindowPrivate::deliverPointerEvent (this=this@entry=0x5600f78f2c40, event=0x5600f87bb2c0) at items/qquickwindow.cpp:2454
#43 0x00007f2b0d7f222e in QQuickWindowPrivate::handleMouseEvent (this=0x5600f78f2c40, event=0x7fffa65f2130) at items/qquickwindow.cpp:2317
#44 0x00007f2b10181c05 in QWindow::event (this=this@entry=0x5600f78eb280, ev=ev@entry=0x7fffa65f2130) at kernel/qwindow.cpp:2363
#45 0x00007f2b0d7f3975 in QQuickWindow::event (this=0x5600f78eb280, e=0x7fffa65f2130) at items/qquickwindow.cpp:1773
#46 0x00007f2b10a689ac in QApplicationPrivate::notify_helper (this=this@entry=0x5600f73d8480, receiver=receiver@entry=0x5600f78eb280, e=e@entry=0x7fffa65f2130) at kernel/qapplication.cpp:3685
#47 0x00007f2b10a6fbb0 in QApplication::notify (this=0x7fffa65f30a0, receiver=0x5600f78eb280, e=0x7fffa65f2130) at kernel/qapplication.cpp:3431
#48 0x00007f2b0f8ea128 in QCoreApplication::notifyInternal2 (receiver=0x5600f78eb280, event=0x7fffa65f2130) at kernel/qcoreapplication.cpp:1075
#49 0x00007f2b0e0eecec in QQuickWidget::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5QuickWidgets.so.5
#50 0x00007f2b10aa98c8 in QWidget::event (this=0x5600f78ebd40, event=0x7fffa65f2770) at kernel/qwidget.cpp:9033
#51 0x00007f2b0e0eeecb in QQuickWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5QuickWidgets.so.5
#52 0x00007f2b10a689ac in QApplicationPrivate::notify_helper (this=this@entry=0x5600f73d8480, receiver=receiver@entry=0x5600f78ebd40, e=e@entry=0x7fffa65f2770) at kernel/qapplication.cpp:3685
#53 0x00007f2b10a709f8 in QApplication::notify (this=<optimized out>, receiver=0x5600f78ebd40, e=0x7fffa65f2770) at kernel/qapplication.cpp:3129
#54 0x00007f2b0f8ea128 in QCoreApplication::notifyInternal2 (receiver=0x5600f78ebd40, event=0x7fffa65f2770) at kernel/qcoreapplication.cpp:1075
#55 0x00007f2b0f8ea30e in QCoreApplication::sendSpontaneousEvent (receiver=receiver@entry=0x5600f78ebd40, event=event@entry=0x7fffa65f2770) at kernel/qcoreapplication.cpp:1482
#56 0x00007f2b10a6f07f in QApplicationPrivate::sendMouseEvent (receiver=receiver@entry=0x5600f78ebd40, event=event@entry=0x7fffa65f2770, alienWidget=0x5600f78ebd40, nativeWidget=0x5600f7401760, buttonDown=buttonDown@entry=0x7f2b111799a0 <qt_button_down>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at kernel/qapplication.cpp:2615
#57 0x00007f2b10ac3f81 in QWidgetWindow::handleMouseEvent (this=this@entry=0x5600f7534160, event=event@entry=0x7fffa65f2bf0) at kernel/qwidgetwindow.cpp:673
#58 0x00007f2b10ac6dea in QWidgetWindow::event (this=0x5600f7534160, event=0x7fffa65f2bf0) at kernel/qwidgetwindow.cpp:295
#59 0x00007f2b10a689ac in QApplicationPrivate::notify_helper (this=this@entry=0x5600f73d8480, receiver=receiver@entry=0x5600f7534160, e=e@entry=0x7fffa65f2bf0) at kernel/qapplication.cpp:3685
#60 0x00007f2b10a6fbb0 in QApplication::notify (this=0x7fffa65f30a0, receiver=0x5600f7534160, e=0x7fffa65f2bf0) at kernel/qapplication.cpp:3431
#61 0x00007f2b0f8ea128 in QCoreApplication::notifyInternal2 (receiver=0x5600f7534160, event=0x7fffa65f2bf0) at kernel/qcoreapplication.cpp:1075
#62 0x00007f2b0f8ea30e in QCoreApplication::sendSpontaneousEvent (receiver=receiver@entry=0x5600f7534160, event=event@entry=0x7fffa65f2bf0) at kernel/qcoreapplication.cpp:1482
#63 0x00007f2b101768b5 in QGuiApplicationPrivate::processMouseEvent (e=0x5600f871bae0) at kernel/qguiapplication.cpp:2203
#64 0x00007f2b101779e5 in QGuiApplicationPrivate::processWindowSystemEvent (e=e@entry=0x5600f871bae0) at kernel/qguiapplication.cpp:1935
#65 0x00007f2b101501cb in QWindowSystemInterface::sendWindowSystemEvents (flags=...) at kernel/qwindowsysteminterface.cpp:1170
#66 0x00007f2b03406d00 in userEventSourceDispatch(_GSource*, int (*)(void*), void*) () from /usr/lib/x86_64-linux-gnu/libQt5WaylandClient.so.5
#67 0x00007f2b08657417 in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#68 0x00007f2b08657650 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#69 0x00007f2b086576dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#70 0x00007f2b0f94942c in QEventDispatcherGlib::processEvents (this=0x5600f73fa060, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#71 0x00007f2b0f8e89aa in QEventLoop::exec (this=this@entry=0x7fffa65f2f90, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#72 0x00007f2b0f8f2120 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1383
#73 0x00005600f674977e in main (argc=<optimized out>, argv=<optimized out>) at ./app/main.cpp:101

Possible duplicates by query: bug 420495, bug 417542, bug 414147, bug 413706, bug 413301.

Reported using DrKonqi
Comment 1 Nate Graham 2020-05-07 14:48:51 UTC
Can reproduce when changing the combobox's selection to anything except the default value of "Custom Scheme".
Comment 2 David Redondo 2020-05-12 06:58:32 UTC
Git commit 12a14a789da4201df85542ceb9fbff55eba00ddb by David Redondo.
Committed on 12/05/2020 at 06:58.
Pushed by davidre into branch 'master'.

[kcms/keys] Really ignore unknown action

Summary:
Otherwise the end() iterator is dereferenced resulting in a crash

Test Plan: Import a predefined scheme

Reviewers: ngraham, #plasma, mart

Reviewed By: ngraham, #plasma, mart

Subscribers: plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D29579

M  +1    -0    kcms/keys/shortcutsmodel.cpp

https://commits.kde.org/plasma-desktop/12a14a789da4201df85542ceb9fbff55eba00ddb