STEPS TO REPRODUCE 1. use Wayland session 2. open Konsole 3. run 'ls' 4. select any word from the output 5. open General Behavior KCM 6. uncheck 'Middle click: Paste selected text' and apply the change 7. alt+tab to Konsole and select another word from 'ls' output OBSERVED RESULT Konsole closes, 'coredumpctl' indicates no crash EXPECTED RESULT Konsole remains open SOFTWARE/OS VERSIONS Operating System: KDE neon Unstable Edition KDE Plasma Version: 5.25.80 KDE Frameworks Version: 5.96.0 Qt Version: 5.15.5 Graphics Platform: Wayland
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