Bug 420093

Summary: Crash: global short cuts
Product: [Applications] systemsettings Reporter: Igor <igorpadua>
Component: generalAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED FIXED    
Severity: crash Keywords: drkonqi
Priority: NOR    
Version: 5.18.4   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In: 5.19.0
Sentry Crash Report:

Description Igor 2020-04-14 20:10:34 UTC
Application: systemsettings5 (5.18.4)

Qt Version: 5.14.1
Frameworks Version: 5.69.0
Operating System: Linux 5.5.17-xanmod1 x86_64
Windowing system: X11
Distribution: KDE neon User Edition 5.18

-- Information about the crash:
- What I was doing when the application crashed:
I pressed the standard button and you are in current component. Also I can't see all the default shortcuts shows the error: org.freedesktop.DBus.Error.NoReply

The crash can be reproduced every time.

-- Backtrace:
Application: Configurações do Sistema (systemsettings5), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7fc3e9336800 (LWP 30988))]

Thread 7 (Thread 0x7fc3a7b3b700 (LWP 30999)):
#0  0x00007fc3e47a20b4 in __GI___libc_read (fd=13, buf=0x7fc3a7b3abde, nbytes=10) at ../sysdeps/unix/sysv/linux/read.c:27
#1  0x00007fc3b0942021 in pa_read () from /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-11.1.so
#2  0x00007fc3b0bc0a2e in pa_mainloop_prepare () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#3  0x00007fc3b0bc14a0 in pa_mainloop_iterate () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#4  0x00007fc3b0bc1560 in pa_mainloop_run () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#5  0x00007fc3b0bcf3c9 in ?? () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#6  0x00007fc3b0971318 in ?? () from /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-11.1.so
#7  0x00007fc3e01de6db in start_thread (arg=0x7fc3a7b3b700) at pthread_create.c:463
#8  0x00007fc3e47b388f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 6 (Thread 0x7fc3c0ed3700 (LWP 30994)):
#0  0x00007fc3e01e49f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55df7ee6f798) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x55df7ee6f748, cond=0x55df7ee6f770) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x55df7ee6f770, mutex=0x55df7ee6f748) at pthread_cond_wait.c:655
#3  0x00007fc3c35694fb in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007fc3c35690e7 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007fc3e01de6db in start_thread (arg=0x7fc3c0ed3700) at pthread_create.c:463
#6  0x00007fc3e47b388f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7fc3c16d4700 (LWP 30993)):
#0  0x00007fc3e01e49f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55df7ee6f798) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x55df7ee6f748, cond=0x55df7ee6f770) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x55df7ee6f770, mutex=0x55df7ee6f748) at pthread_cond_wait.c:655
#3  0x00007fc3c35694fb in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007fc3c35690e7 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007fc3e01de6db in start_thread (arg=0x7fc3c16d4700) at pthread_create.c:463
#6  0x00007fc3e47b388f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7fc3c1ed5700 (LWP 30992)):
#0  0x00007fc3e01e49f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55df7ee6f798) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x55df7ee6f748, cond=0x55df7ee6f770) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x55df7ee6f770, mutex=0x55df7ee6f748) at pthread_cond_wait.c:655
#3  0x00007fc3c35694fb in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007fc3c35690e7 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007fc3e01de6db in start_thread (arg=0x7fc3c1ed5700) at pthread_create.c:463
#6  0x00007fc3e47b388f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7fc3c26d6700 (LWP 30991)):
#0  0x00007fc3e01e49f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55df7ee6f798) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x55df7ee6f748, cond=0x55df7ee6f770) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x55df7ee6f770, mutex=0x55df7ee6f748) at pthread_cond_wait.c:655
#3  0x00007fc3c35694fb in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007fc3c35690e7 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007fc3e01de6db in start_thread (arg=0x7fc3c26d6700) at pthread_create.c:463
#6  0x00007fc3e47b388f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7fc3cbcd0700 (LWP 30990)):
#0  0x00007fc3e47a20b4 in __GI___libc_read (fd=7, buf=0x7fc3cbccfb60, nbytes=16) at ../sysdeps/unix/sysv/linux/read.c:27
#1  0x00007fc3dde6a2b0 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fc3dde250b7 in g_main_context_check () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fc3dde25570 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007fc3dde256dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007fc3e510d0db in QEventDispatcherGlib::processEvents (this=0x7fc3c4000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#6  0x00007fc3e50ac63a in QEventLoop::exec (this=this@entry=0x7fc3cbccfd70, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#7  0x00007fc3e4ebd317 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:536
#8  0x00007fc3e5599555 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5
#9  0x00007fc3e4ebe7ec in QThreadPrivate::start (arg=0x7fc3e5811da0) at thread/qthread_unix.cpp:342
#10 0x00007fc3e01de6db in start_thread (arg=0x7fc3cbcd0700) at pthread_create.c:463
#11 0x00007fc3e47b388f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7fc3e9336800 (LWP 30988)):
[KCrash Handler]
#6  QWeakPointer<QObject>::internalData (this=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h:701
#7  QPointer<KShortcutsEditor>::data (this=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qpointer.h:77
#8  QPointer<KShortcutsEditor>::operator KShortcutsEditor* (this=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qpointer.h:83
#9  ComponentData::editor (this=<optimized out>) at ./kcms/keys/kglobalshortcutseditor.cpp:127
#10 KGlobalShortcutsEditor::defaults (this=<optimized out>, scope=<optimized out>) at ./kcms/keys/kglobalshortcutseditor.cpp:502
#11 0x00007fc3b34cf19e in GlobalShortcutsModule::defaults (this=0x55df7ed3e040) at ./kcms/keys/globalshortcuts.cpp:71
#12 0x00007fc3e50e8fe7 in QtPrivate::QSlotObjectBase::call (a=0x7fffd9397800, r=0x55df7ea3ca90, this=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394
#13 doActivate<false> (sender=0x55df7ebc4a60, signal_index=9, argv=0x7fffd9397800) at kernel/qobject.cpp:3870
#14 0x00007fc3e50e38a2 in QMetaObject::activate (sender=sender@entry=0x55df7ebc4a60, m=m@entry=0x7fc3e690d6e0 <QAbstractButton::staticMetaObject>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7fffd9397800) at kernel/qobject.cpp:3930
#15 0x00007fc3e6313552 in QAbstractButton::clicked (this=this@entry=0x55df7ebc4a60, _t1=<optimized out>) at .moc/moc_qabstractbutton.cpp:313
#16 0x00007fc3e631376a in QAbstractButtonPrivate::emitClicked (this=0x55df7ea92070) at widgets/qabstractbutton.cpp:415
#17 0x00007fc3e6314b4a in QAbstractButtonPrivate::click (this=0x55df7ea92070) at widgets/qabstractbutton.cpp:408
#18 0x00007fc3e6314d3d in QAbstractButton::mouseReleaseEvent (this=0x55df7ebc4a60, e=0x7fffd9397d60) at widgets/qabstractbutton.cpp:1012
#19 0x00007fc3e62687f8 in QWidget::event (this=0x55df7ebc4a60, event=0x7fffd9397d60) at kernel/qwidget.cpp:9031
#20 0x00007fc3e62278bc in QApplicationPrivate::notify_helper (this=this@entry=0x55df7e645860, receiver=receiver@entry=0x55df7ebc4a60, e=e@entry=0x7fffd9397d60) at kernel/qapplication.cpp:3684
#21 0x00007fc3e622f908 in QApplication::notify (this=<optimized out>, receiver=0x55df7ebc4a60, e=0x7fffd9397d60) at kernel/qapplication.cpp:3128
#22 0x00007fc3e50addb8 in QCoreApplication::notifyInternal2 (receiver=0x55df7ebc4a60, event=0x7fffd9397d60) at kernel/qcoreapplication.cpp:1092
#23 0x00007fc3e50adf9e in QCoreApplication::sendSpontaneousEvent (receiver=receiver@entry=0x55df7ebc4a60, event=event@entry=0x7fffd9397d60) at kernel/qcoreapplication.cpp:1499
#24 0x00007fc3e622df8f in QApplicationPrivate::sendMouseEvent (receiver=receiver@entry=0x55df7ebc4a60, event=event@entry=0x7fffd9397d60, alienWidget=0x55df7ebc4a60, nativeWidget=0x55df7e8d9170, buttonDown=buttonDown@entry=0x7fc3e6937980 <qt_button_down>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at kernel/qapplication.cpp:2614
#25 0x00007fc3e6282eb1 in QWidgetWindow::handleMouseEvent (this=this@entry=0x55df7eaa8500, event=event@entry=0x7fffd93981e0) at kernel/qwidgetwindow.cpp:673
#26 0x00007fc3e6285d1a in QWidgetWindow::event (this=0x55df7eaa8500, event=0x7fffd93981e0) at kernel/qwidgetwindow.cpp:295
#27 0x00007fc3e62278bc in QApplicationPrivate::notify_helper (this=this@entry=0x55df7e645860, receiver=receiver@entry=0x55df7eaa8500, e=e@entry=0x7fffd93981e0) at kernel/qapplication.cpp:3684
#28 0x00007fc3e622eac0 in QApplication::notify (this=0x7fffd9398660, receiver=0x55df7eaa8500, e=0x7fffd93981e0) at kernel/qapplication.cpp:3430
#29 0x00007fc3e50addb8 in QCoreApplication::notifyInternal2 (receiver=0x55df7eaa8500, event=0x7fffd93981e0) at kernel/qcoreapplication.cpp:1092
#30 0x00007fc3e50adf9e in QCoreApplication::sendSpontaneousEvent (receiver=receiver@entry=0x55df7eaa8500, event=event@entry=0x7fffd93981e0) at kernel/qcoreapplication.cpp:1499
#31 0x00007fc3e5939f95 in QGuiApplicationPrivate::processMouseEvent (e=0x55df7e991370) at kernel/qguiapplication.cpp:2209
#32 0x00007fc3e593b0c5 in QGuiApplicationPrivate::processWindowSystemEvent (e=e@entry=0x55df7e991370) at kernel/qguiapplication.cpp:1941
#33 0x00007fc3e591401b in QWindowSystemInterface::sendWindowSystemEvents (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1163
#34 0x00007fc3d8d9cc8a in xcbSourceDispatch (source=<optimized out>) at qxcbeventdispatcher.cpp:105
#35 0x00007fc3dde25417 in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#36 0x00007fc3dde25650 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#37 0x00007fc3dde256dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#38 0x00007fc3e510d0bc in QEventDispatcherGlib::processEvents (this=0x55df7e6a5fb0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#39 0x00007fc3e50ac63a in QEventLoop::exec (this=this@entry=0x7fffd9398580, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#40 0x00007fc3e50b5db0 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1400
#41 0x000055df7e3c82e0 in main (argc=<optimized out>, argv=<optimized out>) at ./app/main.cpp:70

Possible duplicates by query: bug 419493.

Reported using DrKonqi
Comment 1 David Redondo 2020-04-30 17:15:54 UTC
Git commit 1ee6660ceb62d4584a5371d0cce107b7008e75df by David Redondo.
Committed on 30/04/2020 at 16:51.
Pushed by davidre into branch 'master'.

Rewrite of the global shortcuts kcm

Summary:
This is a total rewrite of the global shortcuts kcm from scratch. It uses an
abstract item model backend with a qml frontend. This resolves some issues the
old kcm inherently had because it just stacked KShortcutEditors. First it enables
a global serach/filter which either matches the component name, actions, default
or set key combinations across components. Secondly KGlobalAccel can have multiple
default/active key combinations for each action - the old kcm only exposed two each.
The new kcm displays all default or set key combinations.
The main visual structure is similiar to the old kcm. On the left there is a list
with all components but rather than divided into "Application Launchers" and
"Other Shortcuts" the sections are now called "Applications" and "System Services"
(cf. notifications kcm) and the components are now assigned whether the service
we find for a component is an application or not rather if the component was
added via .desktop file. In the main view the shortcuts are displayed. Each item
corresponds to one action. Initially each item is collapsed and shows the action
name and a list of the currently set key combinations for that action. In the
expanded form all default shortcuts are shown which can be activated or
deactivated and all other active shortcuts ("Custom Shortcuts"). It is possible
to change, remove or add new custom shortcuts.
The kcm and model communicate directly with the daemon over DBus. This removes
the need to awkwardly construct actions to pass to the KGlobalAccel API.
Related: bug 157468, bug 213101, bug 230583, bug 250121, bug 251437, bug 272554, bug 318964, bug 341817, bug 348264, bug 366257, bug 369020, bug 388574, bug 393403, bug 408942, bug 416149, bug 416737, bug 417915, bug 419215, bug 419515, bug 419624, bug 419692, bug 419825, bug 419909
FIXED-IN: 5.19.0

Closes T7267

Test Plan:
kcmshell5 kcm_keys
{F8243559}

{F8243560}

{F8243561}

{F8243562}

{F8243563}

{F8243564}

Reviewers: #vdg, #plasma, ngraham

Reviewed By: #vdg, ngraham

Subscribers: GB_2, broulik, davidedmundson, nicolasfella, ngraham, iasensio, plasma-devel

Tags: #plasma

Maniphest Tasks: T7267

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

M  +43   -33   kcms/keys/CMakeLists.txt
D  +0    -29   kcms/keys/ChangeLog
M  +1    -6    kcms/keys/Messages.sh
D  +0    -7    kcms/keys/README
D  +0    -84   kcms/keys/export_scheme_dialog.cpp
D  +0    -59   kcms/keys/export_scheme_dialog.h
D  +0    -35   kcms/keys/export_scheme_dialog.ui
A  +82   -0    kcms/keys/filteredmodel.cpp     [License: GPL (v2/3)]
A  +46   -0    kcms/keys/filteredmodel.h     [License: GPL (v2/3)]
D  +0    -89   kcms/keys/globalshortcuts.cpp
D  +0    -44   kcms/keys/globalshortcuts.h
A  +198  -0    kcms/keys/kcm_keys.cpp     [License: GPL (v2/3)]
R  +1    -1    kcms/keys/kcm_keys.desktop [from: kcms/keys/keys.desktop - 099% similarity]
A  +74   -0    kcms/keys/kcm_keys.h     [License: GPL (v2/3)]
D  +0    -856  kcms/keys/kglobalshortcutseditor.cpp
D  +0    -153  kcms/keys/kglobalshortcutseditor.h
D  +0    -130  kcms/keys/kglobalshortcutseditor.ui
A  +216  -0    kcms/keys/package/contents/ui/ShortcutActionDelegate.qml     [License: GPL (v2+)]
A  +302  -0    kcms/keys/package/contents/ui/main.qml     [License: GPL (v2+)]
A  +17   -0    kcms/keys/package/metadata.desktop
D  +0    -77   kcms/keys/select_application.ui
D  +0    -102  kcms/keys/select_scheme_dialog.cpp
D  +0    -51   kcms/keys/select_scheme_dialog.h
D  +0    -150  kcms/keys/select_scheme_dialog.ui
A  +489  -0    kcms/keys/shortcutsmodel.cpp     [License: GPL (v2+)]
A  +112  -0    kcms/keys/shortcutsmodel.h     [License: GPL (v2/3)]

https://commits.kde.org/plasma-desktop/1ee6660ceb62d4584a5371d0cce107b7008e75df