Summary: | kwin_wayland segfaults in KWaylandServer::TabletV2Interface::pad() while pressing some buttons on Tablet | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | The Lounge Demo User <foraminutethere> |
Component: | wayland-generic | Assignee: | KWin default assignee <kwin-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | aleixpol, nate, postix |
Priority: | NOR | ||
Version: | 5.25.3 | ||
Target Milestone: | --- | ||
Platform: | Arch Linux | ||
OS: | Linux | ||
See Also: | https://bugs.kde.org/show_bug.cgi?id=456921 | ||
Latest Commit: | https://invent.kde.org/plasma/kwin/commit/ea28596a1f8b97687721f527398c69542b3940c1 | Version Fixed In: | 5.25.4 |
Sentry Crash Report: |
Description
The Lounge Demo User
2022-07-17 10:58:18 UTC
I found exact reproduce of this issue: 1. Press and hold any button on the tablet 2. Disconnect a tablet while pressing a button This should have been fixed with the following commit. Can you make sure you reboot and make sure you are running 5.25.3? commit 98eb866418799ffccd501e15fcfd50bf834d1b15 Author: Aleix Pol aleixpol@kde.org Date: Tue Jun 28 03:30:51 2022 +0200 tablet: Leave the surface we were previously on, not the one we are going to This sometimes results in a crash and it's logically wrong as it was. (cherry picked from commit 3d3fcd7ab4ff7f13b6c0170cc204c2ee21b20866) (In reply to Aleix Pol from comment #2) > This should have been fixed with the following commit. > Can you make sure you reboot and make sure you are running 5.25.3? > > commit 98eb866418799ffccd501e15fcfd50bf834d1b15 > Author: Aleix Pol aleixpol@kde.org > Date: Tue Jun 28 03:30:51 2022 +0200 > tablet: Leave the surface we were previously on, not the one we are going to > > This sometimes results in a crash and it's logically wrong as it was. > > (cherry picked from commit 3d3fcd7ab4ff7f13b6c0170cc204c2ee21b20866) Yes, I rebooted, and it's running on 5.25.3 version - bug still persists. But backtrace seems to be changed: #0 0x00007f6ac4964324 in KWaylandServer::TabletV2Interface::pad() const () from /usr/lib/libkwin.so.5 [Current thread is 1 (Thread 0x7f6abd572a80 (LWP 3144))] (gdb) bt #0 0x00007f6ac4964324 in KWaylandServer::TabletV2Interface::pad() const () at /usr/lib/libkwin.so.5 #1 0x00007f6ac47e896f in () at /usr/lib/libkwin.so.5 #2 0x00007f6ac487bdb5 in () at /usr/lib/libkwin.so.5 #3 0x00007f6ac34bd341 in () at /usr/lib/libQt5Core.so.5 #4 0x00007f6ac4748c22 in KWin::InputDevice::tabletPadButtonEvent(unsigned int, bool, KWin::TabletPadId const&) () at /usr/lib/libkwin.so.5 #5 0x00007f6ac490fecc in KWin::LibInput::Connection::processEvents() () at /usr/lib/libkwin.so.5 #6 0x00007f6ac34b0440 in QObject::event(QEvent*) () at /usr/lib/libQt5Core.so.5 #7 0x00007f6ac2b78b3c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5 #8 0x00007f6ac348cad8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5 #9 0x00007f6ac348d5e3 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/libQt5Core.so.5 #10 0x00007f6ac34d6c37 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #11 0x0000556933db4622 in () #12 0x00007f6ac348527c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #13 0x00007f6ac348fda9 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5 #14 0x0000556933cd9eb5 in () #15 0x00007f6ac2229290 in () at /usr/lib/libc.so.6 #16 0x00007f6ac222934a in __libc_start_main () at /usr/lib/libc.so.6 #17 0x0000556933cdb5d5 in () I am unable to reproduce. Can you be a bit more specific about how you get it to crash? Would it be possible for you to get full debug symbols maybe? It should be possible using debuginfod in archlinux nowadays. *** Bug 456921 has been marked as a duplicate of this bug. *** A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/2687 Git commit 4220e7ac25951ae3416e24c357f62decabb9fa15 by Aleix Pol. Committed on 20/07/2022 at 13:23. Pushed by apol into branch 'master'. wayland/tablet_v2: Keep also the pad surface in a QPointer This way we make sure that we don't explode if for some reason the surface is destroyed (e.g. it's closed). This will make it work exactly like the other references to SurfaceInterface. M +1 -1 src/wayland/tablet_v2_interface.cpp https://invent.kde.org/plasma/kwin/commit/4220e7ac25951ae3416e24c357f62decabb9fa15 Git commit ea28596a1f8b97687721f527398c69542b3940c1 by Aleix Pol Gonzalez, on behalf of Aleix Pol. Committed on 20/07/2022 at 13:58. Pushed by apol into branch 'Plasma/5.25'. wayland/tablet_v2: Keep also the pad surface in a QPointer This way we make sure that we don't explode if for some reason the surface is destroyed (e.g. it's closed). This will make it work exactly like the other references to SurfaceInterface. (cherry picked from commit 4220e7ac25951ae3416e24c357f62decabb9fa15) M +1 -1 src/wayland/tablet_v2_interface.cpp https://invent.kde.org/plasma/kwin/commit/ea28596a1f8b97687721f527398c69542b3940c1 |