Summary: | KWin segfault crash in KWin::TabletToolV2Interface::sendProximityIn() when moving a drawing tablet pen close to the screen | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | xeirla |
Component: | input | Assignee: | KWin default assignee <kwin-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | kde, nate |
Priority: | NOR | ||
Version: | 6.1.4 | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/plasma/kwin/-/commit/d31b9033f32504561521b105e8e89d8594e13594 | Version Fixed In: | 6.3.0 |
Sentry Crash Report: | |||
Attachments: | Initial backtrace output after running the command reccommended at: https://community.kde.org/KWin/Debugging |
Description
xeirla
2024-09-12 18:25:15 UTC
Almost forgot, here is the output of `qdbus org.kde.KWin /KWin supportInformation`: https://pastebin.com/Chxg8uAt Thread 1 (Thread 0x7ba2801b3a80 (LWP 10863) "kwin_wayland"): #0 0x00007ba293ce5bac in KWin::TabletToolV2Interface::sendProximityIn(KWin::TabletV2Interface*) () from /usr/lib/libkwin.so.6 #1 0x00007ba293a17402 in ?? () from /usr/lib/libkwin.so.6 #2 0x00007ba293b200f8 in ?? () from /usr/lib/libkwin.so.6 #3 0x00007ba293a19ead in ?? () from /usr/lib/libkwin.so.6 #4 0x00007ba2911a3397 in ?? () from /usr/lib/libQt6Core.so.6 #5 0x00007ba293971d5c in KWin::InputDevice::tabletToolEvent(KWin::InputRedirection::TabletEventType, QPointF const&, double, int, int, double, bool, bool, KWin::TabletToolId const&, std::chrono::duration<long, std::ratio<1l, 1000000l> >) () from /usr/lib/libkwin.so.6 I can see how the code may crash, the bug is in pad <-> tool pairing code. The fix will likely be 6.3 only for a while. A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/6482 Git commit 479c8a7533b25c3b9d789643c5bd455ce6354074 by Vlad Zahorodnii. Committed on 24/09/2024 at 14:32. Pushed by vladz into branch 'Plasma/6.2'. Work around a crash in TabletToolV2Interface::sendProximityIn() The tablet object can be removed earlier than expected. M +4 -2 src/input.cpp https://invent.kde.org/plasma/kwin/-/commit/479c8a7533b25c3b9d789643c5bd455ce6354074 Git commit d31b9033f32504561521b105e8e89d8594e13594 by Vlad Zahorodnii. Committed on 30/10/2024 at 09:31. Pushed by vladz into branch 'master'. Fix registration of tablet tool and pad devices Tablet pad and tablet tool input devices can be announced in any order. The problem with the current code is that it is going to create a TabletV2Interface object when a tablet pad is registered first. In addition to that, it unsets the user data (TabletV2Interface) in libinput device group without checking whether the tablet tool is actually removed. Another issue is that if a tablet pad is registered first, then the TabletV2Interface is going to have the metadata of the tablet pad input device. Tablet pad and tablet tool devices are often represented separately. M +13 -8 src/tablet_input.cpp https://invent.kde.org/plasma/kwin/-/commit/d31b9033f32504561521b105e8e89d8594e13594 |