Bug 419692 - system setting crashed when I try to add a custom app
Summary: system setting crashed when I try to add a custom app
Status: RESOLVED FIXED
Alias: None
Product: systemsettings
Classification: Applications
Component: general (show other bugs)
Version: 5.14.5
Platform: Debian stable Linux
: NOR crash
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2020-04-05 19:17 UTC by zendas
Modified: 2020-04-30 17:16 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In: 5.19.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description zendas 2020-04-05 19:17:28 UTC
Application: systemsettings5 (5.14.5)

Qt Version: 5.11.3
Frameworks Version: 5.54.0
Operating System: Linux 4.19.0-8-686-pae i686
Distribution: Debian GNU/Linux 10 (buster)

-- Information about the crash:
I want to add a program that I customize to run with keyboard shortcuts.
When I return to the system settings window after editing the application menu,It crashed.
I tried using the restore preset component function and there is no way to restore.

The crash can be reproduced every time.

-- Backtrace:
Application: 系統設定 (systemsettings5), signal: Segmentation fault
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0xb23c37c0 (LWP 1782))]

Thread 6 (Thread 0xa49d8b40 (LWP 1789)):
#0  0xb4520b5a in g_main_context_check () from /lib/i386-linux-gnu/libglib-2.0.so.0
#1  0xb4521175 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#2  0xb4521314 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0xb67d301c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5
#4  0xb677a177 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5
#5  0xb65c7549 in QThread::exec() () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5
#6  0xb58a104f in ?? () from /lib/i386-linux-gnu/libQt5Qml.so.5
#7  0xb65d2666 in ?? () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5
#8  0xb4df9fd2 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#9  0xb62bb6d6 in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 5 (Thread 0xa7bf2b40 (LWP 1788)):
#0  0xb62c8721 in ?? () from /lib/i386-linux-gnu/libc.so.6
#1  0xb62a971f in read () from /lib/i386-linux-gnu/libc.so.6
#2  0xb4568915 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0xb4520c9f in g_main_context_check () from /lib/i386-linux-gnu/libglib-2.0.so.0
#4  0xb4521175 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#5  0xb4521314 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#6  0xb67d301c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5
#7  0xb677a177 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5
#8  0xb65c7549 in QThread::exec() () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5
#9  0xb58a104f in ?? () from /lib/i386-linux-gnu/libQt5Qml.so.5
#10 0xb65d2666 in ?? () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5
#11 0xb4df9fd2 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#12 0xb62bb6d6 in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 4 (Thread 0xaaa88b40 (LWP 1785)):
#0  0xb7f4dd61 in __kernel_vsyscall ()
#1  0xb4e00462 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i386-linux-gnu/libpthread.so.0
#2  0xae7b72c2 in ?? () from /usr/lib/i386-linux-gnu/dri/r300_dri.so
#3  0xb4df9fd2 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#4  0xb62bb6d6 in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 3 (Thread 0xb063fb40 (LWP 1784)):
#0  0xb65c3df1 in QMutex::lock() () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5
#1  0xb67d3550 in ?? () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5
#2  0xb4520b5a in g_main_context_check () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0xb4521175 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#4  0xb4521314 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#5  0xb67d301c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5
#6  0xb677a177 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5
#7  0xb65c7549 in QThread::exec() () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5
#8  0xb6a5367c in ?? () from /lib/i386-linux-gnu/libQt5DBus.so.5
#9  0xb65d2666 in ?? () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5
#10 0xb4df9fd2 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#11 0xb62bb6d6 in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 2 (Thread 0xb1c0bb40 (LWP 1783)):
#0  0xb7f4dd61 in __kernel_vsyscall ()
#1  0xb62b0b6b in poll () from /lib/i386-linux-gnu/libc.so.6
#2  0xb4dcdd8d in ?? () from /lib/i386-linux-gnu/libxcb.so.1
#3  0xb4dcff43 in xcb_wait_for_event () from /lib/i386-linux-gnu/libxcb.so.1
#4  0xb1da46a3 in ?? () from /lib/i386-linux-gnu/libQt5XcbQpa.so.5
#5  0xb65d2666 in ?? () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5
#6  0xb4df9fd2 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#7  0xb62bb6d6 in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 1 (Thread 0xb23c37c0 (LWP 1782)):
[KCrash Handler]
#7  0xa32b6fec in ?? () from /usr/lib/i386-linux-gnu/qt5/plugins/kcm_keys.so
#8  0xa32c0ffd in ?? () from /usr/lib/i386-linux-gnu/qt5/plugins/kcm_keys.so
#9  0xb7f1968e in ModuleView::moduleDefaults() () from /lib/i386-linux-gnu/libsystemsettingsview.so.3
#10 0xb67a7864 in QMetaObject::activate(QObject*, int, int, void**) () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5
#11 0xb67a7ced in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5
#12 0xb72dc429 in QAbstractButton::clicked(bool) () from /lib/i386-linux-gnu/libQt5Widgets.so.5
#13 0xb72dc6a1 in ?? () from /lib/i386-linux-gnu/libQt5Widgets.so.5
#14 0xb72ddd54 in ?? () from /lib/i386-linux-gnu/libQt5Widgets.so.5
#15 0xb72ddf29 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /lib/i386-linux-gnu/libQt5Widgets.so.5
#16 0xb722625a in QWidget::event(QEvent*) () from /lib/i386-linux-gnu/libQt5Widgets.so.5
#17 0xb72df3ea in QAbstractButton::event(QEvent*) () from /lib/i386-linux-gnu/libQt5Widgets.so.5
#18 0xb7389f0a in QPushButton::event(QEvent*) () from /lib/i386-linux-gnu/libQt5Widgets.so.5
#19 0xb71e20c6 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/i386-linux-gnu/libQt5Widgets.so.5
#20 0xb71ea6ee in QApplication::notify(QObject*, QEvent*) () from /lib/i386-linux-gnu/libQt5Widgets.so.5
#21 0xb677b77a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5
#22 0xb71e925c in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /lib/i386-linux-gnu/libQt5Widgets.so.5
#23 0xb72444b6 in ?? () from /lib/i386-linux-gnu/libQt5Widgets.so.5
#24 0xb7247831 in ?? () from /lib/i386-linux-gnu/libQt5Widgets.so.5
#25 0xb71e20c6 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/i386-linux-gnu/libQt5Widgets.so.5
#26 0xb71e9d79 in QApplication::notify(QObject*, QEvent*) () from /lib/i386-linux-gnu/libQt5Widgets.so.5
#27 0xb677b77a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5
#28 0xb6be5008 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /lib/i386-linux-gnu/sse2/libQt5Gui.so.5
#29 0xb6be7109 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /lib/i386-linux-gnu/sse2/libQt5Gui.so.5
#30 0xb6bbc694 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/i386-linux-gnu/sse2/libQt5Gui.so.5
#31 0xb1e43cae in ?? () from /lib/i386-linux-gnu/libQt5XcbQpa.so.5
#32 0xb677a177 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5
#33 0xb678295e in QCoreApplication::exec() () from /lib/i386-linux-gnu/sse2/libQt5Core.so.5
#34 0xb6bdada1 in QGuiApplication::exec() () from /lib/i386-linux-gnu/sse2/libQt5Gui.so.5
#35 0xb71e2034 in QApplication::exec() () from /lib/i386-linux-gnu/libQt5Widgets.so.5
#36 0x004de57b in ?? ()
#37 0xb61dbb41 in __libc_start_main () from /lib/i386-linux-gnu/libc.so.6
#38 0x004de601 in _start ()
[Inferior 1 (process 1782) detached]

Reported using DrKonqi
Comment 1 David Redondo 2020-04-30 17:16:04 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 419825, bug 419909, bug 420093
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