Bug 387444

Summary: Crash when removing shortcuts group
Product: [Applications] systemsettings Reporter: David Edmundson <kde>
Component: kcm_keysAssignee: Michael Jansen <kde>
Status: RESOLVED FIXED    
Severity: crash Keywords: drkonqi
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description David Edmundson 2017-11-29 17:38:35 UTC
Application: systemsettings5 (5.11.90)
 (Compiled from sources)
Qt Version: 5.10.0
Frameworks Version: 5.41.0
Operating System: Linux 4.4.99-1-MANJARO x86_64
Distribution: "Manjaro Linux"

-- Information about the crash:
In system settings -> global shortcuts

Selected a category under "other shortcuts" that did not match to a .desktop file (you can tell as it has no icon). For example plasmoidviewer or the new "Power Management". 

Click the "remove" button.   App asserted.

Groups that do match to a .desktop file are fine.

The crash can be reproduced every time.

-- Backtrace:
Application: System Settings (systemsettings5), signal: Aborted
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f503ee1e300 (LWP 8918))]

Thread 5 (Thread 0x7f5011d36700 (LWP 8925)):
#0  0x00007f503afcaf7b in poll () from /usr/lib/libc.so.6
#1  0x00007f5033cebed3 in ?? () from /usr/lib/libglib-2.0.so.0
#2  0x00007f5033cebfae in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#3  0x00007f503beea0a6 in QEventDispatcherGlib::processEvents (this=0x7f500c000b10, flags=...) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:425
#4  0x00007f503be8acd3 in QEventLoop::processEvents (this=this@entry=0x7f5011d35d60, flags=..., flags@entry=...) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/corelib/kernel/qeventloop.cpp:134
#5  0x00007f503be8b121 in QEventLoop::exec (this=this@entry=0x7f5011d35d60, flags=flags@entry=...) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/corelib/kernel/qeventloop.cpp:212
#6  0x00007f503bcb5b3a in QThread::exec (this=this@entry=0x55d06a6ffca0) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/corelib/thread/qthread.cpp:522
#7  0x00007f503a62698e in QQmlThreadPrivate::run (this=0x55d06a6ffca0) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtdeclarative/src/qml/qml/ftw/qqmlthread.cpp:147
#8  0x00007f503bcbc660 in QThreadPrivate::start (arg=0x55d06a6ffca0) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/corelib/thread/qthread_unix.cpp:376
#9  0x00007f503796608a in start_thread () from /usr/lib/libpthread.so.0
#10 0x00007f503afd547f in clone () from /usr/lib/libc.so.6

Thread 4 (Thread 0x7f50191c6700 (LWP 8922)):
#0  0x00007f503afcaf7b in poll () from /usr/lib/libc.so.6
#1  0x00007f5033cebed3 in ?? () from /usr/lib/libglib-2.0.so.0
#2  0x00007f5033cebfae in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#3  0x00007f503beea0a6 in QEventDispatcherGlib::processEvents (this=0x7f5014000b10, flags=...) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:425
#4  0x00007f503be8acd3 in QEventLoop::processEvents (this=this@entry=0x7f50191c5d60, flags=..., flags@entry=...) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/corelib/kernel/qeventloop.cpp:134
#5  0x00007f503be8b121 in QEventLoop::exec (this=this@entry=0x7f50191c5d60, flags=flags@entry=...) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/corelib/kernel/qeventloop.cpp:212
#6  0x00007f503bcb5b3a in QThread::exec (this=this@entry=0x55d06a3b41a0) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/corelib/thread/qthread.cpp:522
#7  0x00007f503a62698e in QQmlThreadPrivate::run (this=0x55d06a3b41a0) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtdeclarative/src/qml/qml/ftw/qqmlthread.cpp:147
#8  0x00007f503bcbc660 in QThreadPrivate::start (arg=0x55d06a3b41a0) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/corelib/thread/qthread_unix.cpp:376
#9  0x00007f503796608a in start_thread () from /usr/lib/libpthread.so.0
#10 0x00007f503afd547f in clone () from /usr/lib/libc.so.6

Thread 3 (Thread 0x7f5026246700 (LWP 8920)):
#0  0x00007f5033cea4f6 in ?? () from /usr/lib/libglib-2.0.so.0
#1  0x00007f5033cea701 in g_main_context_check () from /usr/lib/libglib-2.0.so.0
#2  0x00007f5033cebe76 in ?? () from /usr/lib/libglib-2.0.so.0
#3  0x00007f5033cebfae in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#4  0x00007f503beea0a6 in QEventDispatcherGlib::processEvents (this=0x7f5020000b10, flags=...) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:425
#5  0x00007f503be8acd3 in QEventLoop::processEvents (this=this@entry=0x7f5026245d40, flags=..., flags@entry=...) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/corelib/kernel/qeventloop.cpp:134
#6  0x00007f503be8b121 in QEventLoop::exec (this=this@entry=0x7f5026245d40, flags=flags@entry=...) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/corelib/kernel/qeventloop.cpp:212
#7  0x00007f503bcb5b3a in QThread::exec (this=this@entry=0x7f503c1c8dc0 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/corelib/thread/qthread.cpp:522
#8  0x00007f503c140730 in QDBusConnectionManager::run (this=0x7f503c1c8dc0 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/dbus/qdbusconnection.cpp:178
#9  0x00007f503bcbc660 in QThreadPrivate::start (arg=0x7f503c1c8dc0 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/corelib/thread/qthread_unix.cpp:376
#10 0x00007f503796608a in start_thread () from /usr/lib/libpthread.so.0
#11 0x00007f503afd547f in clone () from /usr/lib/libc.so.6

Thread 2 (Thread 0x7f502ec86700 (LWP 8919)):
#0  0x00007f503afcaf7b in poll () from /usr/lib/libc.so.6
#1  0x00007f5037fbb8e0 in ?? () from /usr/lib/libxcb.so.1
#2  0x00007f5037fbd679 in xcb_wait_for_event () from /usr/lib/libxcb.so.1
#3  0x00007f50312ba7f6 in QXcbEventReader::run (this=0x55d06a01fbd0) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/plugins/platforms/xcb/qxcbconnection.cpp:1370
#4  0x00007f503bcbc660 in QThreadPrivate::start (arg=0x55d06a01fbd0) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/corelib/thread/qthread_unix.cpp:376
#5  0x00007f503796608a in start_thread () from /usr/lib/libpthread.so.0
#6  0x00007f503afd547f in clone () from /usr/lib/libc.so.6

Thread 1 (Thread 0x7f503ee1e300 (LWP 8918)):
[KCrash Handler]
#6  0x00007f503af138a0 in raise () from /usr/lib/libc.so.6
#7  0x00007f503af14f09 in abort () from /usr/lib/libc.so.6
#8  0x00007f503bca35dc in qt_message_fatal (context=..., message=...) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/corelib/global/qlogging.cpp:1710
#9  0x00007f503bca42df in QMessageLogger::fatal (this=this@entry=0x7ffea99236d0, msg=msg@entry=0x7f503bf39510 "ASSERT: \"%s\" in file %s, line %d") at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/corelib/global/qlogging.cpp:816
#10 0x00007f503bc9d385 in qt_assert (assertion=<optimized out>, file=<optimized out>, line=<optimized out>) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/corelib/global/qglobal.cpp:3123
#11 0x00007f500a5b2672 in KGlobalShortcutsEditor::KGlobalShortcutsEditorPrivate::removeComponent (this=0x55d06bcf6b50, componentUnique=...) at /home/david/projects/kde5/src/kde/workspace/plasma-desktop/kcms/keys/kglobalshortcutseditor.cpp:836
#12 0x00007f500a5ae90c in KGlobalShortcutsEditor::KGlobalShortcutsEditorPrivate::<lambda()>::operator()(void) const (__closure=0x55d06bcfc200) at /home/david/projects/kde5/src/kde/workspace/plasma-desktop/kcms/keys/kglobalshortcutseditor.cpp:352
#13 0x00007f500a5b3225 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KGlobalShortcutsEditor::KGlobalShortcutsEditorPrivate::initGUI()::<lambda()> >::call(KGlobalShortcutsEditor::KGlobalShortcutsEditorPrivate::<lambda()> &, void **) (f=..., arg=0x7ffea9923a30) at /opt/qt5/include/QtCore/qobjectdefs_impl.h:130
#14 0x00007f500a5b30e1 in QtPrivate::Functor<KGlobalShortcutsEditor::KGlobalShortcutsEditorPrivate::initGUI()::<lambda()>, 0>::call<QtPrivate::List<>, void>(KGlobalShortcutsEditor::KGlobalShortcutsEditorPrivate::<lambda()> &, void *, void **) (f=..., arg=0x7ffea9923a30) at /opt/qt5/include/QtCore/qobjectdefs_impl.h:240
#15 0x00007f500a5b3031 in QtPrivate::QFunctorSlotObject<KGlobalShortcutsEditor::KGlobalShortcutsEditorPrivate::initGUI()::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=1, this_=0x55d06bcfc1f0, r=0x55d06afb4f50, a=0x7ffea9923a30, ret=0x0) at /opt/qt5/include/QtCore/qobjectdefs_impl.h:423
#16 0x00007f503bebec1f in QtPrivate::QSlotObjectBase::call (a=<optimized out>, r=0x55d06afb4f50, this=0x55d06bcfc1f0) at ../../include/QtCore/../../../../qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:378
#17 QMetaObject::activate (sender=sender@entry=0x55d06afb4f50, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7ffea9923a30) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/corelib/kernel/qobject.cpp:3749
#18 0x00007f503bebf103 in QMetaObject::activate (sender=sender@entry=0x55d06afb4f50, m=m@entry=0x7f503dd7dfc0 <QAbstractButton::staticMetaObject>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7ffea9923a30) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/corelib/kernel/qobject.cpp:3628
#19 0x00007f503d91a9c0 in QAbstractButton::clicked (this=this@entry=0x55d06afb4f50, _t1=<optimized out>) at .moc/moc_qabstractbutton.cpp:308
#20 0x00007f503d91ac08 in QAbstractButtonPrivate::emitClicked (this=this@entry=0x55d06bd88c80) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/widgets/widgets/qabstractbutton.cpp:414
#21 0x00007f503d91c272 in QAbstractButtonPrivate::click (this=this@entry=0x55d06bd88c80) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/widgets/widgets/qabstractbutton.cpp:407
#22 0x00007f503d91c52c in QAbstractButton::mouseReleaseEvent (this=0x55d06afb4f50, e=0x7ffea9923ef0) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/widgets/widgets/qabstractbutton.cpp:1011
#23 0x00007f503da13e10 in QToolButton::mouseReleaseEvent (this=<optimized out>, e=<optimized out>) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/widgets/widgets/qtoolbutton.cpp:620
#24 0x00007f503d84df6a in QWidget::event (this=0x55d06afb4f50, event=0x7ffea9923ef0) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/widgets/kernel/qwidget.cpp:8817
#25 0x00007f503d91d71d in QAbstractButton::event (this=this@entry=0x55d06afb4f50, e=e@entry=0x7ffea9923ef0) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/widgets/widgets/qabstractbutton.cpp:968
#26 0x00007f503da13efb in QToolButton::event (this=0x55d06afb4f50, event=0x7ffea9923ef0) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/widgets/widgets/qtoolbutton.cpp:983
#27 0x00007f503d8069c7 in QApplicationPrivate::notify_helper (this=this@entry=0x55d06a010b00, receiver=receiver@entry=0x55d06afb4f50, e=0x7ffea9923ef0) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3732
#28 0x00007f503d80e5ef in QApplication::notify (this=<optimized out>, receiver=0x55d06afb4f50, e=0x7ffea9923ef0) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3208
#29 0x00007f503be8ce57 in QCoreApplication::notifyInternal2 (receiver=receiver@entry=0x55d06afb4f50, event=event@entry=0x7ffea9923ef0) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1044
#30 0x00007f503d80da6b in QCoreApplication::sendSpontaneousEvent (event=0x7ffea9923ef0, receiver=0x55d06afb4f50) at ../../include/QtCore/../../../../qt5/qtbase/src/corelib/kernel/qcoreapplication.h:237
#31 QApplicationPrivate::sendMouseEvent (receiver=receiver@entry=0x55d06afb4f50, event=event@entry=0x7ffea9923ef0, alienWidget=alienWidget@entry=0x55d06afb4f50, nativeWidget=0x55d06a08cd20, buttonDown=buttonDown@entry=0x7f503dda7d00 <qt_button_down>, lastMouseReceiver=..., spontaneous=true) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/widgets/kernel/qapplication.cpp:2709
#32 0x00007f503d86b331 in QWidgetWindow::handleMouseEvent (this=this@entry=0x55d06a207880, event=event@entry=0x7ffea9924290) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/widgets/kernel/qwidgetwindow.cpp:654
#33 0x00007f503d86d3f3 in QWidgetWindow::event (this=0x55d06a207880, event=0x7ffea9924290) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/widgets/kernel/qwidgetwindow.cpp:273
#34 0x00007f503d8069c7 in QApplicationPrivate::notify_helper (this=this@entry=0x55d06a010b00, receiver=receiver@entry=0x55d06a207880, e=e@entry=0x7ffea9924290) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3732
#35 0x00007f503d80e323 in QApplication::notify (this=0x7ffea99245c0, receiver=0x55d06a207880, e=0x7ffea9924290) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3104
#36 0x00007f503be8ce57 in QCoreApplication::notifyInternal2 (receiver=receiver@entry=0x55d06a207880, event=event@entry=0x7ffea9924290) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1044
#37 0x00007f503d21d3b2 in QCoreApplication::sendSpontaneousEvent (event=0x7ffea9924290, receiver=0x55d06a207880) at ../../include/QtCore/../../../../qt5/qtbase/src/corelib/kernel/qcoreapplication.h:237
#38 QGuiApplicationPrivate::processMouseEvent (e=0x55d06c2123a0) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/gui/kernel/qguiapplication.cpp:1957
#39 0x00007f503d21f1e8 in QGuiApplicationPrivate::processWindowSystemEvent (e=e@entry=0x55d06c2123a0) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/gui/kernel/qguiapplication.cpp:1741
#40 0x00007f503d1f7b2b in QWindowSystemInterface::sendWindowSystemEvents (flags=...) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/gui/kernel/qwindowsysteminterface.cpp:976
#41 0x00007f503134f825 in QPAEventDispatcherGlib::processEvents (this=0x55d06a073980, flags=...) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/platformsupport/eventdispatchers/qeventdispatcher_glib.cpp:70
#42 0x00007f503be8acd3 in QEventLoop::processEvents (this=this@entry=0x7ffea99244f0, flags=..., flags@entry=...) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/corelib/kernel/qeventloop.cpp:134
#43 0x00007f503be8b121 in QEventLoop::exec (this=this@entry=0x7ffea99244f0, flags=flags@entry=...) at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/corelib/kernel/qeventloop.cpp:212
#44 0x00007f503be9509a in QCoreApplication::exec () at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1332
#45 0x00007f503d21507e in QGuiApplication::exec () at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/gui/kernel/qguiapplication.cpp:1687
#46 0x00007f503d8068a7 in QApplication::exec () at /run/media/david/15cbf614-32ad-44e8-9fdc-466f76304ed7/projects/qt5/qtbase/src/widgets/kernel/qapplication.cpp:2917
#47 0x000055d0699ecadf in main (argc=1, argv=0x7ffea99246d8) at /home/david/projects/kde5/src/kde/workspace/systemsettings/app/main.cpp:62

Possible duplicates by query: bug 364721.

Reported using DrKonqi
Comment 1 David Edmundson 2018-03-22 08:51:54 UTC
Git commit db311474f0486d5cfcef069663e53be37d764cf2 by David Edmundson.
Committed on 22/03/2018 at 08:51.
Pushed by davidedmundson into branch 'master'.

Fix use of assert/crash when removing global shortcut

Summary:
I'm not the author, but it's pretty clear what the intention was.

We expect to get one result back from proxyModel->match
We use results.first(), so we want to check we have at least one entry.
The assert was written backwards

Test Plan: Can now remove a group without a crash

Reviewers: #plasma, graesslin

Reviewed By: #plasma, graesslin

Subscribers: graesslin, plasma-devel

Tags: #plasma

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

M  +1    -1    kcms/keys/kglobalshortcutseditor.cpp

https://commits.kde.org/plasma-desktop/db311474f0486d5cfcef069663e53be37d764cf2