https://bugs.kde.org/show_bug.cgi?id=481791

            Bug ID: 481791
           Summary: QT6 applications on wayland crash with "wl_pointer"
                    has no event 10
    Classification: Plasma
           Product: kwin
           Version: master
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: wayland-generic
          Assignee: kwin-bugs-n...@kde.org
          Reporter: ashleysom...@gmail.com
  Target Milestone: ---

SUMMARY
Using Plasma 6 that recently landed on KDE Neon "Release" distribution channel.

KWin version = 4:6.0.0-0xneon+22.04+jammy+release+build65
QT6 version = 6.6.2-0xneon+22.04+jammy+release+build75
Libinput version = 1.20.0-1ubuntu0.3

Using a logitech MX Ergo mouse with the logitech unifying receiver, and the
hid_logitech_hidpp kernel driver. The driver emits "high resolution scroll"
events when the scroll wheel is used.

"wl_pointer" is a Wayland protocol interface. Event 10 is the "high resolution"
scroll event (aka Axis 120 event)



STEPS TO REPRODUCE
1. Install QT6 from Neon "release" channel (based on Ubuntu 22.04)
2. Install Plasma6 from Neon "release" channel (based on Ubuntu 22.04)
3. Launch into a Plasma Wayland Session
4. Open any QT6 application (eg, konsole v24.02, or dolphin v24.02)
5. Scroll the wheel on any logitech HID++ mouse

OBSERVED RESULT
QT6 application crashes, 
Error printed to console:
-------
interface 'wl_pointer' has no event 10
The Wayland connection experienced a fatal error: Bad address
-------

EXPECTED RESULT
Applications should not crash when receiving a high resolution scroll event.

SOFTWARE/OS VERSIONS
Linux: 6.5.0-21
KDE Plasma Version: 6.0.0
KDE Frameworks Version: 6.0.0
Qt Version: 6.6.2


DISCUSSION:

This occurs only on QT6 applications. GTK3 and GTK4 apps work fine, and QT5
applications work fine.

This occurs only in Plasma6 Wayland session. Plasma6 X11 is fine, and Gnome 45
Wayland session is fine.

I suspect there is a wayland protocol mismatch between the Wayland server
(kwin-wayland) and the wayland client (Qt6). Perhaps the version of QT6.6.2 in
Neon "release" channel is compiled against an older libwayland-client, not
sure.
This shouldn't be an issue though, because kwin _does_ check the client
protocol version before sending the event:
https://github.com/KDE/kwin/blob/8029c5c7acd004bd26fd539d3948c1ecf758abab/src/wayland/pointer.cpp#L280

I have even attempted to work around this issue by filtering high-resolution
scroll events in libinput using the quirks line:
AttrEventCodeDisable=REL_WHEEL_HI_RES;REL_HWHEEL_HI_RES;

I have confirmed using libinput tools this event is now disabled, but Plasma
Kwin-wayland still receives high resolution scroll events and sends them to the
wayland client. So either kwin is bypassing libpinput and receiving libev
kernel events, or using its own libinput config without the event codes
disabled? That is the extent of my digging on that.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to