Bug 418136 - Plasma crashes in QQuickShortcutContext::matcher() after making and deleting a sticky note, dismissing the "undo?" notification, and then pressing Ctrl+V
Summary: Plasma crashes in QQuickShortcutContext::matcher() after making and deleting ...
Status: RESOLVED DUPLICATE of bug 420178
Alias: None
Product: plasmashell
Classification: Plasma
Component: generic-crash (show other bugs)
Version: 5.18.1
Platform: Kubuntu Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
: 428949 (view as bug list)
Depends on:
Blocks: 443934
  Show dependency treegraph
 
Reported: 2020-02-24 12:36 UTC by Vojtěch Bartoň
Modified: 2022-01-19 20:21 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Backtrace (12.29 KB, text/plain)
2020-02-24 17:43 UTC, Vojtěch Bartoň
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Vojtěch Bartoň 2020-02-24 12:36:08 UTC
SUMMARY
Plasma crashes after making and deleting a note then pressing Ctrl+V.

STEPS TO REPRODUCE
1. Create a note on the desktop using the middle mouse button.
2. Delete it, and close the notification.
3. Press Ctrl+V

OBSERVED RESULT
Plasma crashes

EXPECTED RESULT
Dialog that makes a text file with copied text.

SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: Kubuntu 19.10
(available in About System)
KDE Plasma Version: 5.18.1
KDE Frameworks Version: 5.67.0
Qt Version: 5.12.4

ADDITIONAL INFORMATION
Comment 1 David Edmundson 2020-02-24 12:51:56 UTC
Crashes should have a backtrace attached.

See the sad icon in the system tray after plasmashell restarts
Comment 2 Vojtěch Bartoň 2020-02-24 17:43:36 UTC
Created attachment 126380 [details]
Backtrace
Comment 3 Vojtěch Bartoň 2020-02-24 17:44:18 UTC
(In reply to David Edmundson from comment #1)
> Crashes should have a backtrace attached.
> 
> See the sad icon in the system tray after plasmashell restarts

I put the backtrace in the attachement.
Comment 4 Bug Janitor Service 2020-03-10 04:33:13 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 5 Vojtěch Bartoň 2020-03-10 08:49:30 UTC
I put a backtrace in the attachement.
Comment 6 Nate Graham 2021-01-08 20:36:28 UTC
Thread 1 (Thread 0x7f3cc7f691c0 (LWP 1452)):
[KCrash Handler]
#6  0x00007f3cc6215d60 in QQuickShortcutContext::matcher(QObject*, Qt::ShortcutContext) () at /lib/x86_64-linux-gnu/libQt5QuickTemplates2.so.5
#7  0x00007f3ccbe7224c in QShortcutMap::find(QKeyEvent*, int) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#8  0x00007f3ccbe72d41 in QShortcutMap::nextState(QKeyEvent*) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#9  0x00007f3ccbe73059 in QShortcutMap::tryShortcut(QKeyEvent*) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#10 0x00007f3ccbe27ad2 in QWindowSystemInterface::handleShortcutEvent(QWindow*, unsigned long, int, QFlags<Qt::KeyboardModifier>, unsigned int, unsigned int, unsigned int, QString const&, bool, unsigned short) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#11 0x00007f3ccbe45001 in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#12 0x00007f3ccbe4a5e1 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#13 0x00007f3ccbe2426b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#14 0x00007f3cc763528e in  () at /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#15 0x00007f3cca18284d in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#16 0x00007f3cca182ad0 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#17 0x00007f3cca182b73 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#18 0x00007f3ccbab8635 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#19 0x00007f3ccba5f5cb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#20 0x00007f3ccba67336 in QCoreApplication::exec() () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#21 0x00005566e2437b25 in  ()
#22 0x00007f3ccb4211e3 in __libc_start_main (main=0x5566e2436ea0, argc=1, argv=0x7ffdc73d0668, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffdc73d0658) at ../csu/libc-start.c:308
#23 0x00005566e2437cde in _start ()
[Inferior 1 (process 1452) detached]


Cannot reproduce and the backtrace looks to be entirely in Qt code. Are you able to upgrade to a newer version of Kubuntu (the latest one is 20.10) and try again?
Comment 7 Vojtěch Bartoň 2021-01-09 14:03:59 UTC
(In reply to Nate Graham from comment #6)
> Thread 1 (Thread 0x7f3cc7f691c0 (LWP 1452)):
> [KCrash Handler]
> #6  0x00007f3cc6215d60 in QQuickShortcutContext::matcher(QObject*,
> Qt::ShortcutContext) () at /lib/x86_64-linux-gnu/libQt5QuickTemplates2.so.5
> #7  0x00007f3ccbe7224c in QShortcutMap::find(QKeyEvent*, int) () at
> /lib/x86_64-linux-gnu/libQt5Gui.so.5
> #8  0x00007f3ccbe72d41 in QShortcutMap::nextState(QKeyEvent*) () at
> /lib/x86_64-linux-gnu/libQt5Gui.so.5
> #9  0x00007f3ccbe73059 in QShortcutMap::tryShortcut(QKeyEvent*) () at
> /lib/x86_64-linux-gnu/libQt5Gui.so.5
> #10 0x00007f3ccbe27ad2 in
> QWindowSystemInterface::handleShortcutEvent(QWindow*, unsigned long, int,
> QFlags<Qt::KeyboardModifier>, unsigned int, unsigned int, unsigned int,
> QString const&, bool, unsigned short) () at
> /lib/x86_64-linux-gnu/libQt5Gui.so.5
> #11 0x00007f3ccbe45001 in
> QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::
> KeyEvent*) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
> #12 0x00007f3ccbe4a5e1 in
> QGuiApplicationPrivate::
> processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*)
> () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
> #13 0x00007f3ccbe2426b in
> QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::
> ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
> #14 0x00007f3cc763528e in  () at /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
> #15 0x00007f3cca18284d in g_main_context_dispatch () at
> /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #16 0x00007f3cca182ad0 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #17 0x00007f3cca182b73 in g_main_context_iteration () at
> /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #18 0x00007f3ccbab8635 in
> QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
> () at /lib/x86_64-linux-gnu/libQt5Core.so.5
> #19 0x00007f3ccba5f5cb in
> QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at
> /lib/x86_64-linux-gnu/libQt5Core.so.5
> #20 0x00007f3ccba67336 in QCoreApplication::exec() () at
> /lib/x86_64-linux-gnu/libQt5Core.so.5
> #21 0x00005566e2437b25 in  ()
> #22 0x00007f3ccb4211e3 in __libc_start_main (main=0x5566e2436ea0, argc=1,
> argv=0x7ffdc73d0668, init=<optimized out>, fini=<optimized out>,
> rtld_fini=<optimized out>, stack_end=0x7ffdc73d0658) at
> ../csu/libc-start.c:308
> #23 0x00005566e2437cde in _start ()
> [Inferior 1 (process 1452) detached]
> 
> 
> Cannot reproduce and the backtrace looks to be entirely in Qt code. Are you
> able to upgrade to a newer version of Kubuntu (the latest one is 20.10) and
> try again?

Well, now I'm on Manjaro, but I'm still able to replicate it. I even found an easier way to do it!
Place a sticky note on the desktop/panel (no need to do it with the middle mouse button, you can add it to the desktop through the "Add widgets" button), delete it, close the notification and press CTRL+V.
Comment 8 Nate Graham 2021-01-09 20:30:34 UTC
Yup, that makes it crash for me too.

Here's a symbolicated backtrace:


#0  0x0000000000000060 in  ()
#1  0x00007ffff5575f3a in QMetaObject::cast(QObject const*) const
    (this=0x7ffff79cee20 <QQuickItem::staticMetaObject>, obj=0x41aa710)
    at kernel/qmetaobject.cpp:382
#2  0x00007ffff5575f75 in QMetaObject::cast(QObject*) const
    (this=<optimized out>, obj=<optimized out>) at kernel/qmetaobject.cpp:371
#3  0x00007ffff091350c in qobject_cast<QQuickItem*>(QObject*)
    (object=0x41aa710, object=<optimized out>) at /usr/include/qt5/QtCore/qobject.h:519
#4  QQuickShortcutContext::matcher(QObject*, Qt::ShortcutContext)
    (context=<optimized out>, obj=0x41aa710) at qquickshortcutcontext.cpp:79
#5  QQuickShortcutContext::matcher(QObject*, Qt::ShortcutContext)
    (obj=<optimized out>, context=<optimized out>) at qquickshortcutcontext.cpp:71
#6  0x00007ffff5b98b4f in QShortcutEntry::correctContext() const (this=0x1234bc8)
    at kernel/qshortcutmap.cpp:79
#7  QShortcutMap::find(QKeyEvent*, int) (this=this@entry=0x4d97d8, e=e@entry=
    0x7fffffffc750, ignoredModifiers=ignoredModifiers@entry=0) at kernel/qshortcutmap.cpp:457
#8  0x00007ffff5b9b9f0 in QShortcutMap::nextState(QKeyEvent*)
    (this=this@entry=0x4d97d8, e=e@entry=0x7fffffffc750) at kernel/qshortcutmap.cpp:372
#9  0x00007ffff5b9cca1 in QShortcutMap::tryShortcut(QKeyEvent*)
    (this=this@entry=0x4d97d8, e=e@entry=0x7fffffffc750) at kernel/qshortcutmap.cpp:328
#10 0x00007ffff5b462be in QWindowSystemInterface::handleShortcutEvent(QWindow*, unsigned long, int, QFlags<Qt::KeyboardModifier>, unsigned int, unsigned int, unsigned int, QString const&, bool, unsigned short)
    (window=0x7fffffffc750, timestamp=108275895, keyCode=86, modifiers=..., nativeScanCode=55, nativeVirtualKey=118, nativeModifiers=4, text=..., autorepeat=false, count=1)
    at kernel/qwindowsysteminterface.cpp:477
#11 0x00007ffff5b68abb in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) (e=0x5747a60) at kernel/qguiapplication.cpp:2395
#12 0x00007ffff5b42c5c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1169
#13 0x00007ffff146cfaa in xcbSourceDispatch(GSource*, GSourceFunc, gpointer)
    (source=source@entry=0x5b5dd0) at qxcbeventdispatcher.cpp:105
#14 0x00007ffff3a8de57 in g_main_dispatch (context=0x7fffec005000) at ../glib/gmain.c:3325
#15 g_main_context_dispatch (context=0x7fffec005000) at ../glib/gmain.c:4043
#16 0x00007ffff3a8e1d8 in g_main_context_iterate
    (context=context@entry=0x7fffec005000, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4119
#17 0x00007ffff3a8e28f in g_main_context_iteration
    (context=0x7fffec005000, may_block=may_block@entry=1) at ../glib/gmain.c:4184
#18 0x00007ffff55c483f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
    (this=0x59fc00, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#19 0x00007ffff556bcab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
    (this=this@entry=0x7fffffffca90, flags=..., flags@entry=...)
    at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#20 0x00007ffff5573f20 in QCoreApplication::exec() ()
    at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#21 0x00007ffff5b601bc in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1867
#22 0x00007ffff6485485 in QApplication::exec() () at kernel/qapplication.cpp:2824
#23 0x0000000000421605 in main(int, char**) (argc=<optimized out>, argv=0x7fffffffcc00)
    at /home/nate/kde/src/plasma-workspace/shell/main.cpp:252
Comment 9 Willyanto 2021-02-01 16:21:42 UTC
I tested on Plasma 5.20.5 and found out that it is also possible to crash Plasma by pressing other shortcuts such as undo (Ctrl + Z), select all (Ctrl + A), copy (Ctrl + C), cut (Ctrl + X), and delete (Delete).
Comment 10 Nate Graham 2021-02-24 04:51:16 UTC
*** Bug 428949 has been marked as a duplicate of this bug. ***
Comment 11 Nicolas Fella 2022-01-19 20:21:58 UTC

*** This bug has been marked as a duplicate of bug 420178 ***