SUMMARY Kwin crashes when trying to git commit with gpg signing enabled. Output of dmesg gives: [ 40.297234] kwin_wayland[2262]: segfault at 0 ip 00007fd439671c1e sp 00007ffd0a5caf80 error 4 cpu 0 in libkwin.so.5.22.80[7fd4395e2000+1e9000] Commiting without signing enabled works as expected. The bug happens on both the daily compiled master version of kwin/plasma & current 5.21.90 kde-unstable version in Arch repos. STEPS TO REPRODUCE 1. Do some changes to a git repo & commit using the "-S" option OBSERVED RESULT Kwin segfaults & restarts, changes weren't commited EXPECTED RESULT Changes are commited & Kwin doesnt segfault SOFTWARE/OS VERSIONS Linux: Garuda Linux (Arch) KDE Plasma Version: 5.22.80 KDE Frameworks Version: 5.83.0 Qt Version: 5.12.2 ADDITIONAL INFORMATION
Can you please provide the backtrace of the crash?
Created attachment 138450 [details] Backtrace
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/998
Nico, can you please test the patch?
Yep, compiled from the branch specified branch and commiting works now without crash.
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/1004
Git commit 2d9e2f0c701fbd57ab6b6584106b54124f52bdaf by Vlad Zahorodnii. Committed on 18/05/2021 at 12:28. Pushed by vladz into branch 'master'. effects: Fix EffectWindow::shape() for X11 windows With the introduction of scene items, the Scene::Window::bufferShape() method was removed as it makes no sense on wayland - a window may have several sub-surfaces, so a single region to indicate the shape of the window won't work. SurfaceItem::shape() returns the shape of a surface. On Wayland, it corresponds to the rect of the wl_surface. On X11, it corresponds to the client window rect inside the frame window, or custom shape region if the client has set one. On the other hand, EffectWindow::shape() wants a completely different thing. If the window is decorated, it needs to return the rect of the decoration. Otherwise it has to return the shape region if there's one. In the future, the EffectWindow::shape() function must be removed as it doesn't fit the item based design. The main reason why we have it at all is because the x server doesn't support translucency, setting a shape region is a (hacky) way to work around that limitation, xeyes is a notable example. Related: bug 435862 M +9 -2 src/effects.cpp https://invent.kde.org/plasma/kwin/commit/2d9e2f0c701fbd57ab6b6584106b54124f52bdaf
Git commit a177061b51179129c769456e1af204fb66a2b83d by Vlad Zahorodnii. Committed on 18/05/2021 at 12:29. Pushed by vladz into branch 'Plasma/5.22'. effects: Fix EffectWindow::shape() for X11 windows With the introduction of scene items, the Scene::Window::bufferShape() method was removed as it makes no sense on wayland - a window may have several sub-surfaces, so a single region to indicate the shape of the window won't work. SurfaceItem::shape() returns the shape of a surface. On Wayland, it corresponds to the rect of the wl_surface. On X11, it corresponds to the client window rect inside the frame window, or custom shape region if the client has set one. On the other hand, EffectWindow::shape() wants a completely different thing. If the window is decorated, it needs to return the rect of the decoration. Otherwise it has to return the shape region if there's one. In the future, the EffectWindow::shape() function must be removed as it doesn't fit the item based design. The main reason why we have it at all is because the x server doesn't support translucency, setting a shape region is a (hacky) way to work around that limitation, xeyes is a notable example. Related: bug 435862 (cherry picked from commit 2d9e2f0c701fbd57ab6b6584106b54124f52bdaf) M +9 -2 src/effects.cpp https://invent.kde.org/plasma/kwin/commit/a177061b51179129c769456e1af204fb66a2b83d