Summary: | x11 nested kwin_wayland crashes on exit | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | Harald Sitter <sitter> |
Component: | core | Assignee: | KWin default assignee <kwin-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | ||
Priority: | NOR | ||
Version First Reported In: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/plasma/kwin/commit/24a59dd2fe386df1c26626cd1d81c306b5ee5313 | Version Fixed In: | |
Sentry Crash Report: |
Description
Harald Sitter
2023-02-21 06:17:51 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/3670 Git commit 4fcc545628e6a1bce7bb6073e2aff9364f93d7a4 by Harald Sitter. Committed on 23/02/2023 at 13:50. Pushed by sitter into branch 'master'. backends/x11: explicitly free the outputs ...before releasing the connection! this was randomly causing crashes because of use-after-disconnect problems. since we would tear down the connection in ~X11WindowedBackend but outputs wouldn't get cleaned up until QObject children cleanup of the X11WindowedBackend object (or more precisely the OutputBase). this would then result in ~X11WindowedOutput accessing a backend connection that had already been closed to help debug this type of problem moving forward let's also reset the connection to nullptr during destruction. it's kinda pointless but it makes it easier to spot use-after-disconnect M +13 -0 src/backends/x11/windowed/x11_windowed_backend.cpp M +1 -0 src/backends/x11/windowed/x11_windowed_backend.h https://invent.kde.org/plasma/kwin/commit/4fcc545628e6a1bce7bb6073e2aff9364f93d7a4 Git commit 24a59dd2fe386df1c26626cd1d81c306b5ee5313 by Harald Sitter. Committed on 23/02/2023 at 14:02. Pushed by vladz into branch 'Plasma/5.27'. backends/x11: explicitly free the outputs ...before releasing the connection! this was randomly causing crashes because of use-after-disconnect problems. since we would tear down the connection in ~X11WindowedBackend but outputs wouldn't get cleaned up until QObject children cleanup of the X11WindowedBackend object (or more precisely the OutputBase). this would then result in ~X11WindowedOutput accessing a backend connection that had already been closed to help debug this type of problem moving forward let's also reset the connection to nullptr during destruction. it's kinda pointless but it makes it easier to spot use-after-disconnect (cherry picked from commit 4fcc545628e6a1bce7bb6073e2aff9364f93d7a4) M +13 -0 src/backends/x11/windowed/x11_windowed_backend.cpp M +1 -0 src/backends/x11/windowed/x11_windowed_backend.h https://invent.kde.org/plasma/kwin/commit/24a59dd2fe386df1c26626cd1d81c306b5ee5313 |