Summary: | kwin_wayland crashes when opening kscreen KCM | ||
---|---|---|---|
Product: | [Frameworks and Libraries] kwayland | Reporter: | Fabian Vogt <fabian> |
Component: | server | Assignee: | Martin Flöser <mgraesslin> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | bugseforuns, nate |
Priority: | NOR | ||
Version: | 5.41.0 | ||
Target Milestone: | --- | ||
Platform: | openSUSE | ||
OS: | Linux | ||
URL: | https://phabricator.kde.org/D10300 | ||
Latest Commit: | https://commits.kde.org/kwayland/d38825d934e4d0b656495851fdf9a0d2fc247449 | Version Fixed In: |
Description
Fabian Vogt
2018-01-19 23:35:01 UTC
moving to kwayland as the complete backtrace is in kwayland. I think the two issues are very related. Systemsettings (or more likely Qt) does something fishy resulting in the one case in KWayland killing the connection and once in KWayland crashing. First is OK, latter of course not. So from the backtrace it looks like we have a sub-surface tree which doesn't have a parent anymore. I can implement a patch, but so far I didn't succeed in reproducing the issue. Patch at https://phabricator.kde.org/D10300 *** Bug 389696 has been marked as a duplicate of this bug. *** Git commit d38825d934e4d0b656495851fdf9a0d2fc247449 by Martin Flöser. Committed on 07/02/2018 at 18:41. Pushed by graesslin into branch 'master'. [server] Don't crash when a subsurface gets commited whose parent surface got destroyed Summary: Qt seems to damage and commit child subsurfaces although their parent got destroyed. This actually doesn't make any sense as without a parent surface they cannot be shown. But nevertheless we should not crash in such a situation. This change guards the places in the commit handling code where the parent gets accessed. Test Plan: New test case which exposes the problem Reviewers: #frameworks, #kwin, #plasma Subscribers: plasma-devel Tags: #plasma, #frameworks Differential Revision: https://phabricator.kde.org/D10300 M +47 -0 autotests/client/test_wayland_subsurface.cpp M +3 -0 src/server/subcompositor_interface.cpp M +5 -2 src/server/surface_interface.cpp https://commits.kde.org/kwayland/d38825d934e4d0b656495851fdf9a0d2fc247449 |