Application: kwin_x11 (5.14.5) Qt Version: 5.11.3 Frameworks Version: 5.54.0 Operating System: Linux 4.19.0-9-amd64 x86_64 Distribution: Debian GNU/Linux 10 (buster) -- Information about the crash: - What I was doing when the application crashed: Activated hot corner to present windows (so I could switch to another one). The hot corner was set to the top-left of the screen and was set to "Present Windows - All Desktops." - Unusual behavior I noticed: Before the crash, I noticed the desktop become quite laggy for a second before crashing. The crash can be reproduced sometimes. -- Backtrace: Application: KWin (kwin_x11), signal: Segmentation fault Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". [Current thread is 1 (Thread 0x7fea85e98940 (LWP 3692))] Thread 9 (Thread 0x7fea7f7fe700 (LWP 4369)): #0 0x00007fea8ec15916 in ppoll () from /lib/x86_64-linux-gnu/libc.so.6 #1 0x00007fea8d81b721 in qt_safe_poll(pollfd*, unsigned long, timespec const*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #2 0x00007fea8d81cb99 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #3 0x00007fea8d7cd15b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #4 0x00007fea8d61ce76 in QThread::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #5 0x00007fea8c03ac65 in ?? () from /lib/x86_64-linux-gnu/libQt5Qml.so.5 #6 0x00007fea8d626a67 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #7 0x00007fea8c80ffa3 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0 #8 0x00007fea8ec204cf in clone () from /lib/x86_64-linux-gnu/libc.so.6 Thread 8 (Thread 0x7fea5b3fe700 (LWP 3806)): #0 0x00007fea8ec15916 in ppoll () from /lib/x86_64-linux-gnu/libc.so.6 #1 0x00007fea8d81b721 in qt_safe_poll(pollfd*, unsigned long, timespec const*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #2 0x00007fea8d81cb99 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #3 0x00007fea8d7cd15b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #4 0x00007fea8d61ce76 in QThread::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #5 0x00007fea8d626a67 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #6 0x00007fea8c80ffa3 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0 #7 0x00007fea8ec204cf in clone () from /lib/x86_64-linux-gnu/libc.so.6 Thread 7 (Thread 0x7fea51727700 (LWP 3748)): #0 0x00007fea8c81600c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0 #1 0x00007fea8d11be6a in ?? () from /lib/x86_64-linux-gnu/libQt5Script.so.5 #2 0x00007fea8d11be89 in ?? () from /lib/x86_64-linux-gnu/libQt5Script.so.5 #3 0x00007fea8c80ffa3 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0 #4 0x00007fea8ec204cf in clone () from /lib/x86_64-linux-gnu/libc.so.6 Thread 6 (Thread 0x7fea68f99700 (LWP 3740)): #0 0x00007fea8ec15916 in ppoll () from /lib/x86_64-linux-gnu/libc.so.6 #1 0x00007fea8d81b721 in qt_safe_poll(pollfd*, unsigned long, timespec const*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #2 0x00007fea8d81cb99 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #3 0x00007fea8d7cd15b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #4 0x00007fea8d61ce76 in QThread::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #5 0x00007fea8c03ac65 in ?? () from /lib/x86_64-linux-gnu/libQt5Qml.so.5 #6 0x00007fea8d626a67 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #7 0x00007fea8c80ffa3 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0 #8 0x00007fea8ec204cf in clone () from /lib/x86_64-linux-gnu/libc.so.6 Thread 5 (Thread 0x7fea6a007700 (LWP 3738)): #0 0x00007fea8c81600c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0 #1 0x00007fea6e981b23 in ?? () from /usr/lib/x86_64-linux-gnu/dri/r600_dri.so #2 0x00007fea6e981877 in ?? () from /usr/lib/x86_64-linux-gnu/dri/r600_dri.so #3 0x00007fea8c80ffa3 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0 #4 0x00007fea8ec204cf in clone () from /lib/x86_64-linux-gnu/libc.so.6 Thread 4 (Thread 0x7fea6a808700 (LWP 3737)): #0 0x00007fea8c81600c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0 #1 0x00007fea6e981b23 in ?? () from /usr/lib/x86_64-linux-gnu/dri/r600_dri.so #2 0x00007fea6e981877 in ?? () from /usr/lib/x86_64-linux-gnu/dri/r600_dri.so #3 0x00007fea8c80ffa3 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0 #4 0x00007fea8ec204cf in clone () from /lib/x86_64-linux-gnu/libc.so.6 Thread 3 (Thread 0x7fea7e18b700 (LWP 3733)): #0 0x00007fea8ec15916 in ppoll () from /lib/x86_64-linux-gnu/libc.so.6 #1 0x00007fea8d81b721 in qt_safe_poll(pollfd*, unsigned long, timespec const*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #2 0x00007fea8d81cb99 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #3 0x00007fea8d7cd15b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #4 0x00007fea8d61ce76 in QThread::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #5 0x00007fea8c03ac65 in ?? () from /lib/x86_64-linux-gnu/libQt5Qml.so.5 #6 0x00007fea8d626a67 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #7 0x00007fea8c80ffa3 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0 #8 0x00007fea8ec204cf in clone () from /lib/x86_64-linux-gnu/libc.so.6 Thread 2 (Thread 0x7fea7ffff700 (LWP 3731)): #0 0x00007fea8ec15916 in ppoll () from /lib/x86_64-linux-gnu/libc.so.6 #1 0x00007fea8d81b721 in qt_safe_poll(pollfd*, unsigned long, timespec const*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #2 0x00007fea8d81cb99 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #3 0x00007fea8d7cd15b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #4 0x00007fea8d61ce76 in QThread::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #5 0x00007fea8bb02545 in ?? () from /lib/x86_64-linux-gnu/libQt5DBus.so.5 #6 0x00007fea8d626a67 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #7 0x00007fea8c80ffa3 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0 #8 0x00007fea8ec204cf in clone () from /lib/x86_64-linux-gnu/libc.so.6 Thread 1 (Thread 0x7fea85e98940 (LWP 3692)): [KCrash Handler] #6 0x0000558ed56b23a1 in ?? () #7 0x00007fea8e93ed09 in KWin::Workspace::workspaceEvent(xcb_generic_event_t*) () from /lib/x86_64-linux-gnu/libkwin.so.5 #8 0x00007fea8d7cbfdf in QAbstractEventDispatcher::filterNativeEvent(QByteArray const&, void*, long*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #9 0x00007fea85a40cb0 in QXcbConnection::handleXcbEvent(xcb_generic_event_t*) () from /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5 #10 0x00007fea85a41843 in QXcbConnection::processXcbEvents() () from /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5 #11 0x00007fea8d7f8072 in QObject::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #12 0x00007fea8e14b4c1 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #13 0x00007fea8e152970 in QApplication::notify(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #14 0x00007fea8d7ce489 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #15 0x00007fea8d7d146b in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #16 0x00007fea8d81ca0b in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #17 0x00007fea85ad569d in ?? () from /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5 #18 0x00007fea8d7cd15b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #19 0x00007fea8d7d5132 in QCoreApplication::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #20 0x00007fea8ecf247b in kdemain () from /lib/x86_64-linux-gnu/libkdeinit5_kwin_x11.so #21 0x00007fea8eb4b09b in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6 #22 0x0000558ed2e9b08a in _start () [Inferior 1 (process 3692) detached] The reporter indicates this bug may be a duplicate of or related to bug 422899. Possible duplicates by query: bug 422899, bug 422558, bug 422275, bug 421762, bug 420314. Reported using DrKonqi
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