Summary: | kWin crashed when using hotcorner to Present Windows | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | readycommunication4 |
Component: | general | Assignee: | KWin default assignee <kwin-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | adam.m.fontenot+kde, bretaa, bugs.kde.org, carlo, cfranchuk, code, danielcdawson, djander, ftefrjbhfvasf32, honestcorruption, j.mairboeck, kalabankro, lima.lucas.ma, liubomirwm, mcpain, mmerlone, n.place, nate, ofejirousiaphre, piotr.mierzwinski, r.day80, roland, samarth.hawaldar, schneider.andi, srevinsaju, streangalucas, yuvrajtalukdar |
Priority: | VHI | Keywords: | drkonqi, regression |
Version: | 5.14.5 | ||
Target Milestone: | --- | ||
Platform: | Debian stable | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/plasma/kwin/commit/381b685b518f5dcffb93c18cdd89b558acde987b | Version Fixed In: | 5.18.6 |
Sentry Crash Report: | |||
Attachments: |
New crash information added by DrKonqi
New crash information added by DrKonqi New crash information added by DrKonqi New crash information added by DrKonqi New crash information added by DrKonqi New crash information added by DrKonqi New crash information added by DrKonqi New crash information added by DrKonqi |
Description
readycommunication4
2020-06-21 12:46:24 UTC
Created attachment 129971 [details]
New crash information added by DrKonqi
kwin_x11 (5.19.2) using Qt 5.14.2
- What I was doing when the application crashed: Moved mouse pointer to left corner to present windows.
- Custom settings of the application: I have enabled the wobbly window effect
-- Backtrace (Reduced):
#5 0x00007f1fb558cf0a in KWin::Workspace::workspaceEvent (this=0x55eb752d0370, e=0x7f1f98024220) at ./events.cpp:240
#6 0x00007f1fb2bfc4df in QAbstractEventDispatcher::filterNativeEvent (this=<optimized out>, eventType=..., message=message@entry=0x7f1f98024220, result=result@entry=0x7ffd7c6a0668) at kernel/qabstracteventdispatcher.cpp:488
#7 0x00007f1f9e54bbac in QXcbConnection::handleXcbEvent (this=this@entry=0x55eb7521a190, event=event@entry=0x7f1f98024220) at qxcbconnection.cpp:550
#8 0x00007f1f9e54c6d6 in QXcbConnection::processXcbEvents (this=0x55eb7521a190, flags=...) at qxcbconnection.cpp:1029
#9 0x00007f1f9e57132c in QXcbUnixEventDispatcher::processEvents (this=0x55eb7526be90, flags=...) at qxcbeventdispatcher.cpp:61
Created attachment 129996 [details]
New crash information added by DrKonqi
kwin_x11 (5.19.2) using Qt 5.14.2
- What I was doing when the application crashed:
I had just rebooted and wiggled the mouse to find the pointer. Screen went to some "default" 800 or 1200 resolution and kwin crashed.
-- Backtrace (Reduced):
#5 0x00007f9519df8fca in KWin::Workspace::workspaceEvent(xcb_generic_event_t*) (this=0x55d0f13c7d90, e=0x7f94fc00edb0) at ./events.cpp:240
#6 0x00007f95174684df in QAbstractEventDispatcher::filterNativeEvent(QByteArray const&, void*, long*) (this=<optimized out>, eventType=..., message=message@entry=0x7f94fc00edb0, result=result@entry=0x7ffe5c438e28) at kernel/qabstracteventdispatcher.cpp:488
#7 0x00007f9502c76bac in QXcbConnection::handleXcbEvent(xcb_generic_event_t*) (this=this@entry=0x55d0f12bcf80, event=event@entry=0x7f94fc00edb0) at qxcbconnection.cpp:550
#8 0x00007f9502c776d6 in QXcbConnection::processXcbEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55d0f12bcf80, flags=...) at qxcbconnection.cpp:1029
#9 0x00007f9502c9c32c in QXcbUnixEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55d0f12ff450, flags=...) at qxcbeventdispatcher.cpp:61
Created attachment 130032 [details]
New crash information added by DrKonqi
kwin_x11 (5.19.2) using Qt 5.14.2
- What I was doing when the application crashed:i was trying to move from one desktop tab to another
-- Backtrace (Reduced):
#5 0x00007f678e163fca in KWin::Workspace::workspaceEvent (this=0x5620a0a39bf0, e=0x7f677000ce00) at ./events.cpp:240
#6 0x00007f678b7d34df in QAbstractEventDispatcher::filterNativeEvent (this=<optimized out>, eventType=..., message=message@entry=0x7f677000ce00, result=result@entry=0x7fff37ea19c8) at kernel/qabstracteventdispatcher.cpp:488
#7 0x00007f6776fe1bac in QXcbConnection::handleXcbEvent (this=this@entry=0x5620a0996e40, event=event@entry=0x7f677000ce00) at qxcbconnection.cpp:550
#8 0x00007f6776fe26d6 in QXcbConnection::processXcbEvents (this=0x5620a0996e40, flags=...) at qxcbconnection.cpp:1029
#9 0x00007f677700732c in QXcbUnixEventDispatcher::processEvents (this=0x5620a09d4450, flags=...) at qxcbeventdispatcher.cpp:61
Created attachment 130076 [details]
New crash information added by DrKonqi
kwin_x11 (5.19.2) using Qt 5.15.0
- What I was doing when the application crashed:
When using my hot corner configured to "Present Windows - Current Desktop", kwin crashed. I can generally trigger by activiating my hot corner very quickly.
- Custom settings of the application:
Lower left hot corner configured to "Present Windows - Current Desktop"
-- Backtrace (Reduced):
#5 0x00007f40fa4d1dcc in KWin::Workspace::workspaceEvent (this=<optimized out>, e=0x7f40ec029a20) at /usr/include/qt5/QtCore/qvector.h:1041
#6 0x00007f40f90ca057 in QAbstractEventDispatcher::filterNativeEvent (this=<optimized out>, eventType=..., message=message@entry=0x7f40ec029a20, result=result@entry=0x7fff1582cb48) at kernel/qabstracteventdispatcher.cpp:488
#7 0x00007f40f33b2571 in QXcbConnection::handleXcbEvent (this=this@entry=0x55ef2b0dce40, event=event@entry=0x7f40ec029a20) at qxcbnativeinterface.h:101
#8 0x00007f40f33b3a86 in QXcbConnection::processXcbEvents (this=0x55ef2b0dce40, flags=...) at qxcbconnection.cpp:1003
#9 0x00007f40f33d62fc in QXcbUnixEventDispatcher::processEvents (this=0x55ef2b1af000, flags=...) at qxcbeventdispatcher.cpp:61
*** Bug 422899 has been marked as a duplicate of this bug. *** Created attachment 130291 [details]
New crash information added by DrKonqi
kwin_x11 (5.19.3) using Qt 5.15.0
- What I was doing when the application crashed:
Accidentally used a screen edge, activating Present Windows - All Desktops. It appeared to crash once I cancelled it (by using the screen edge again), though I may simply have not been able to see it until the screen was returned to normal.
- Custom settings of the application:
Desktop Effects > Window Management: Present Windows is enabled.
Screen Edges: lower-left corner set to "Present Windows - All Desktops".
-- Backtrace (Reduced):
#5 0x00007f3569c5117d in KWin::Workspace::workspaceEvent(xcb_generic_event_t*) () from /usr/lib64/libkwin.so.5
#6 0x00007f3568a15f1c in QAbstractEventDispatcher::filterNativeEvent(QByteArray const&, void*, long*) () from /usr/lib64/libQt5Core.so.5
#7 0x00007f3562974e31 in QXcbConnection::handleXcbEvent(xcb_generic_event_t*) () from /usr/lib64/libQt5XcbQpa.so.5
#8 0x00007f3562976346 in QXcbConnection::processXcbEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5XcbQpa.so.5
#9 0x00007f356299878c in QXcbUnixEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5XcbQpa.so.5
Created attachment 130400 [details]
New crash information added by DrKonqi
kwin_x11 (5.19.3) using Qt 5.14.2
- What I was doing when the application crashed:
Move mouse to hot corner, and keep it moving in the corner direction so that windows are placed in the present position and back. Crashes after several rounds.
- Custom settings of the application:
I'm using the GLES renderer (KWIN_COMPOSE=O2ES), in case it matters
-- Backtrace (Reduced):
#5 0x00007fbaee695b06 in KWin::Workspace::workspaceEvent(xcb_generic_event_t*) (this=0x55bf7ad5b280, e=0x7fbae0007560) at ./x11eventfilter.h:51
#6 0x00007fbaed24dbcf in QAbstractEventDispatcher::filterNativeEvent(QByteArray const&, void*, long*) (this=<optimized out>, eventType=..., message=message@entry=0x7fbae0007560, result=result@entry=0x7fffc14db338) at kernel/qabstracteventdispatcher.cpp:488
#7 0x00007fbae6c0f865 in QXcbConnection::handleXcbEvent(xcb_generic_event_t*) (this=this@entry=0x55bf7ac81a40, event=event@entry=0x7fbae0007560) at qxcbnativeinterface.h:101
#8 0x00007fbae6c105c6 in QXcbConnection::processXcbEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55bf7ac81a40, flags=...) at qxcbconnection.cpp:1029
#9 0x00007fbae6c398e0 in QXcbUnixEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55bf7acdd350, flags=...) at qxcbeventdispatcher.cpp:61
Just adding that I have had the same as all of the above. New for me since Plasma updated from 5.18 to 5.19.3 on Manjaro stable. *** Bug 424752 has been marked as a duplicate of this bug. *** *** Bug 425054 has been marked as a duplicate of this bug. *** *** Bug 422689 has been marked as a duplicate of this bug. *** Getting tons of dupes; raising priority. So I'm on KDE Neon 5.19.5 just to send debugging information on this crash, and found out all this duplicates. If it's useful, I noticed the crash happens mostly if you trigger the corner, and upon triggering again, move the mouse quickly immediately after that. I can reproduce it reliably that way. Hope this helps! I can confirm Lucas Lima comments above, fast hesitation is the trigger for the bug. You move the mouse to the hot-spot and immediately go back to the center of the screen the choose the window. If, for some reason, you get a delay to see the effect, you go there back with the mouse to the hot-spot (maybe I didn't get the right spot, let me try again?), but at the same time the previous trigger is starting to act. Then it crashes. *** Bug 426665 has been marked as a duplicate of this bug. *** KDE Plasma: 5.19.5 KDE Frameworks: 5.74.0 Qt: 5.15.1 Kernel: 5.8.9 Could not reproduce, maybe doing something wrong. I've quickly moved mouse to corner, away from it, back to corner and repeated it several times. kwin didn't crashed. Distro: ALT Workstation K, using Sisyphus repo. (In reply to Nate Graham from comment #12) > Getting tons of dupes; raising priority. The main problem with this bug is that it's difficult to reproduce. Speaking for myself, I have never been able to reproduce this crash. Me neither. :( I made a video the demonstrate the crash a bit better: https://www.youtube.com/watch?v=7U66sUR6918 Surprisingly, as shown on the video, if you just keep moving the mouse up indefinitely it still happens. Thanks for the video, that's helpful. I plugged in a mouse (usually I use my laptop's trackpad) and I can now reproduce the crash: pushing the mouse constantly in the direction of the corner eventually makes KWin crash with the same backtrace. Hopefully you can get it to crash in the same way, Vlad! Thanks. Now, I'm also able to reproduce the crash. A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/274 (In reply to Bug Janitor Service from comment #22) > A possibly relevant merge request was started @ > https://invent.kde.org/plasma/kwin/-/merge_requests/274 I looked at the comment for the request. Yes, foreach is deadly.Lots of people used that (myself included) because it was soooo handy. Very few understood you were working on a copy of the container. Of those who understood some exploited that fact doing horrible things that cannot be done with a ranged for loop. Can reproduce on Arch Linux with kwin on X11 - 5.19.90 *** Bug 426634 has been marked as a duplicate of this bug. *** Git commit a433fb08a3a9255802405a17dd4c8270c68fcb25 by Vlad Zahorodnii. Committed on 29/09/2020 at 08:26. Pushed by vladz into branch 'master'. x11: Make removal of X11 event filters safe If an X11 event filter has been activated and it unregisters another X11 event filter, then the window manager may crash because the foreach macro in Workspace::workspaceEvent() makes a copy of m_genericEventFilters or m_eventFilters and we can call the event() method for an already defunct filter. With this change, X11 event filters can be safely removed and installed at any particular moment. M +42 -10 events.cpp M +10 -0 workspace.cpp M +15 -2 workspace.h https://invent.kde.org/plasma/kwin/commit/a433fb08a3a9255802405a17dd4c8270c68fcb25 Git commit c5880833d94330d022c4b6fc84c175aadeaf9632 by Vlad Zahorodnii. Committed on 29/09/2020 at 08:27. Pushed by vladz into branch 'Plasma/5.20'. x11: Make removal of X11 event filters safe If an X11 event filter has been activated and it unregisters another X11 event filter, then the window manager may crash because the foreach macro in Workspace::workspaceEvent() makes a copy of m_genericEventFilters or m_eventFilters and we can call the event() method for an already defunct filter. With this change, X11 event filters can be safely removed and installed at any particular moment. (cherry picked from commit a433fb08a3a9255802405a17dd4c8270c68fcb25) M +42 -10 events.cpp M +10 -0 workspace.cpp M +15 -2 workspace.h https://invent.kde.org/plasma/kwin/commit/c5880833d94330d022c4b6fc84c175aadeaf9632 Git commit 381b685b518f5dcffb93c18cdd89b558acde987b by Vlad Zahorodnii. Committed on 29/09/2020 at 08:28. Pushed by vladz into branch 'Plasma/5.18'. x11: Make removal of X11 event filters safe If an X11 event filter has been activated and it unregisters another X11 event filter, then the window manager may crash because the foreach macro in Workspace::workspaceEvent() makes a copy of m_genericEventFilters or m_eventFilters and we can call the event() method for an already defunct filter. With this change, X11 event filters can be safely removed and installed at any particular moment. (cherry picked from commit a433fb08a3a9255802405a17dd4c8270c68fcb25) M +42 -10 events.cpp M +10 -0 workspace.cpp M +15 -2 workspace.h https://invent.kde.org/plasma/kwin/commit/381b685b518f5dcffb93c18cdd89b558acde987b *** Bug 430180 has been marked as a duplicate of this bug. *** *** Bug 430197 has been marked as a duplicate of this bug. *** *** Bug 430224 has been marked as a duplicate of this bug. *** *** Bug 430945 has been marked as a duplicate of this bug. *** *** Bug 398977 has been marked as a duplicate of this bug. *** Created attachment 135004 [details]
New crash information added by DrKonqi
kwin_x11 (5.18.5) using Qt 5.12.8
- What I was doing when the application crashed:
Setting up a hot corner with present all windows. This has affected other aspects of my system, like Auto Hide for the plasma task manager
- Custom settings of the application:
-- Backtrace (Reduced):
#7 0x00007f25e2f5de39 in KWin::Workspace::workspaceEvent(xcb_generic_event_t*) () from /lib/x86_64-linux-gnu/libkwin.so.5
#8 0x00007f25e1c21d8f in QAbstractEventDispatcher::filterNativeEvent(QByteArray const&, void*, long*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#9 0x00007f25dbb787b5 in QXcbConnection::handleXcbEvent(xcb_generic_event_t*) () from /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#10 0x00007f25dbb7978a in QXcbConnection::processXcbEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
[...]
#12 0x00007f25e1c234db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
*** Bug 431795 has been marked as a duplicate of this bug. *** *** Bug 434865 has been marked as a duplicate of this bug. *** *** Bug 437457 has been marked as a duplicate of this bug. *** Created attachment 139593 [details]
New crash information added by DrKonqi
kwin_x11 (5.19.5) using Qt 5.14.2
- What I was doing when the application crashed:
Similarly to 423319, I can trigger the crash by moving to the top left corner and continuing moving up-left. I can reproduce it quite easily. I use a touchpad, which may be more janky than a mouse.
My KDE version however, is more recent - Plasma 5.19.5, newer than the version the original 423319 bugfix was applied to (5.18.6).
Operating System: Kubuntu 20.10
KDE Plasma Version: 5.19.5
KDE Frameworks Version: 5.74.0
Qt Version: 5.14.2
-- Backtrace (Reduced):
#4 0x00007f7fc105b4ee in KWin::Workspace::workspaceEvent(xcb_generic_event_t*) () from /lib/x86_64-linux-gnu/libkwin.so.5
#5 0x00007f7fbfcd34ef in QAbstractEventDispatcher::filterNativeEvent (this=<optimized out>, eventType=..., message=message@entry=0x7f7fb4097ea0, result=result@entry=0x7ffcf67d6118) at kernel/qabstracteventdispatcher.cpp:488
#6 0x00007f7fb9a34505 in QXcbConnection::handleXcbEvent (this=this@entry=0x561065777bc0, event=event@entry=0x7f7fb4097ea0) at qxcbnativeinterface.h:101
#7 0x00007f7fb9a35a46 in QXcbConnection::processXcbEvents (this=0x561065777bc0, flags=...) at qxcbconnection.cpp:1029
#8 0x00007f7fb9a58740 in QXcbUnixEventDispatcher::processEvents (this=0x5610657c8910, flags=...) at qxcbeventdispatcher.cpp:61
|