Summary: | [Wayland] App closes when I select text after disabling middle-click pasting | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | Patrick Silva <bugseforuns> |
Component: | wayland-generic | Assignee: | Méven Car <meven.car> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | kde, meven29, nate, xaver.hugl |
Priority: | VHI | ||
Version: | 5.25.90 | ||
Target Milestone: | --- | ||
Platform: | Arch Linux | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/plasma/kwin/commit/abf40c4a94c2c19dab4324c5879ca01ad048ffdc | Version Fixed In: | 5.26 |
Sentry Crash Report: |
Description
Patrick Silva
2022-06-30 11:56:31 UTC
Can reproduce 100%. There's no backtrace; the app doesn't seem to be actually crashing. It does crash, with the following message:
> wl_display@1: error 0: invalid object 45
>It does crash
Technically that's not a crash. Which is why there's no backtrace for Nate. It's doing something kwin defines as illegal referencing an object it doesn't know about.
We're doing something very unexpected removing a global. We have all the typical races with the global which might be binding in flight but also all the existing DataDevices and DataOffers open which should still exist until a client drops them. I doubt we do the right thing, I'm even more doubtful that Qt and every client will.
I suspect it might be far easier to add a boolean into Seat to make it do nothing for future events than to delete the global at runtime and fix every client.
(In reply to David Edmundson from comment #3) > >It does crash > Technically that's not a crash. Which is why there's no backtrace for Nate. > It's doing something kwin defines as illegal referencing an object it > doesn't know about. > > We're doing something very unexpected removing a global. We have all the > typical races with the global which might be binding in flight but also all > the existing DataDevices and DataOffers open which should still exist until > a client drops them. I doubt we do the right thing, I'm even more doubtful > that Qt and every client will. > > I suspect it might be far easier to add a boolean into Seat to make it do > nothing for future events than to delete the global at runtime and fix every > client. I will try that. Another workaround would be to make the settings only change on a new session and not dynamically. A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/2708 A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/3012 Git commit e60f26e0abd71d65044345675b64e45d7b3cd311 by Vlad Zahorodnii, on behalf of Méven Car. Committed on 29/09/2022 at 10:32. Pushed by vladz into branch 'master'. Disable PrimarySelection in seat setPrimarySelection M +1 -1 src/main_wayland.cpp M +33 -1 src/wayland/autotests/server/test_datacontrol_interface.cpp M +15 -0 src/wayland/seat_interface.cpp M +2 -0 src/wayland/seat_interface.h M +1 -0 src/wayland/seat_interface_p.h M +2 -11 src/wayland_server.cpp M +0 -3 src/wayland_server.h https://invent.kde.org/plasma/kwin/commit/e60f26e0abd71d65044345675b64e45d7b3cd311 Git commit abf40c4a94c2c19dab4324c5879ca01ad048ffdc by Vlad Zahorodnii, on behalf of Méven Car. Committed on 29/09/2022 at 11:09. Pushed by vladz into branch 'Plasma/5.26'. Disable PrimarySelection in seat setPrimarySelection (cherry picked from commit e60f26e0abd71d65044345675b64e45d7b3cd311) M +1 -1 src/main_wayland.cpp M +33 -1 src/wayland/autotests/server/test_datacontrol_interface.cpp M +15 -0 src/wayland/seat_interface.cpp M +2 -0 src/wayland/seat_interface.h M +1 -0 src/wayland/seat_interface_p.h M +2 -11 src/wayland_server.cpp M +0 -2 src/wayland_server.h https://invent.kde.org/plasma/kwin/commit/abf40c4a94c2c19dab4324c5879ca01ad048ffdc |