Bug 491788

Summary: Crash of plasmashell in org_kde_kwin_shadow_manager_unset() related to session crash after resume from suspend
Product: [Plasma] plasmashell Reporter: Jan Rathmann <jan.rathmann>
Component: generic-crashAssignee: Plasma Bugs List <plasma-bugs>
Status: REPORTED ---    
Severity: crash CC: kde, kdedev, nate, vlad.zahorodnii, xaver.hugl
Priority: NOR    
Version: master   
Target Milestone: 1.0   
Platform: Other   
OS: Linux   
See Also: https://bugs.kde.org/show_bug.cgi?id=445893
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Jan Rathmann 2024-08-16 13:49:00 UTC
The crash happened after the following series of events:

1. Resuming system from suspend.
2. Screen showed workspace as usual for ~1 sec., then session crashed --> back to SDDM

Related messages from journalclt:

Aug 16 11:48:37 speedy2022 ksmserver[2209]: The X11 connection broke (error 1). Did the X11 server die?
Aug 16 11:48:37 speedy2022 kded6[2496]: X connection to :1 broken (explicit kill or server shutdown).
Aug 16 11:48:37 speedy2022 kaccess[2592]: The X11 connection broke (error 1). Did the X11 server die?
Aug 16 11:48:37 speedy2022 xembedsniproxy[2328]: The X11 connection broke (error 1). Did the X11 server die?
Aug 16 11:48:37 speedy2022 kwin_wayland_wrapper[2126]: 2 XSELINUXs still allocated at reset
Aug 16 11:48:37 speedy2022 kwin_wayland_wrapper[2126]: SCREEN: 0 objects of 728 bytes = 0 total bytes 0 private allocs
Aug 16 11:48:37 speedy2022 kwin_wayland_wrapper[2126]: DEVICE: 0 objects of 40 bytes = 0 total bytes 0 private allocs
Aug 16 11:48:37 speedy2022 kwin_wayland_wrapper[2126]: CLIENT: 0 objects of 464 bytes = 0 total bytes 0 private allocs
Aug 16 11:48:37 speedy2022 kwin_wayland_wrapper[2126]: WINDOW: 0 objects of 72 bytes = 0 total bytes 0 private allocs
Aug 16 11:48:37 speedy2022 kwin_wayland_wrapper[2126]: PIXMAP: 2 objects of 160 bytes = 320 total bytes 0 private allocs
Aug 16 11:48:37 speedy2022 kwin_wayland_wrapper[2126]: GC: 0 objects of 40 bytes = 0 total bytes 0 private allocs
Aug 16 11:48:37 speedy2022 kwin_wayland_wrapper[2126]: CURSOR: 0 objects of 16 bytes = 0 total bytes 0 private allocs
Aug 16 11:48:37 speedy2022 kwin_wayland_wrapper[2126]: SYNC_FENCE: 0 objects of 24 bytes = 0 total bytes 0 private allocs
Aug 16 11:48:37 speedy2022 kwin_wayland_wrapper[2126]: TOTAL: 2 objects, 320 bytes, 0 allocs
Aug 16 11:48:37 speedy2022 kwin_wayland_wrapper[2126]: 2 PIXMAPs still allocated at reset
Aug 16 11:48:37 speedy2022 kwin_wayland_wrapper[2126]: PIXMAP: 2 objects of 160 bytes = 320 total bytes 0 private allocs
Aug 16 11:48:37 speedy2022 kwin_wayland_wrapper[2126]: GC: 0 objects of 40 bytes = 0 total bytes 0 private allocs
Aug 16 11:48:37 speedy2022 kwin_wayland_wrapper[2126]: CURSOR: 0 objects of 16 bytes = 0 total bytes 0 private allocs
Aug 16 11:48:37 speedy2022 kwin_wayland_wrapper[2126]: SYNC_FENCE: 0 objects of 24 bytes = 0 total bytes 0 private allocs
Aug 16 11:48:37 speedy2022 kwin_wayland_wrapper[2126]: TOTAL: 2 objects, 320 bytes, 0 allocs
Aug 16 11:48:37 speedy2022 gmenudbusmenuproxy[2324]: The X11 connection broke (error 1). Did the X11 server die?
Aug 16 11:48:37 speedy2022 systemd[1836]: plasma-kwin_wayland.service: Watchdog timeout (limit 15s)!
Aug 16 11:48:37 speedy2022 systemd[1836]: plasma-kwin_wayland.service: Killing process 1997 (kwin_wayland_wr) with signal SIGHUP.
Aug 16 11:48:37 speedy2022 systemd[1836]: plasma-kwin_wayland.service: Killing process 2012 (kwin_wayland) with signal SIGHUP.
Aug 16 11:48:37 speedy2022 systemd[1836]: plasma-kwin_wayland.service: Killing process 2126 (Xwayland) with signal SIGHUP.
Aug 16 11:48:37 speedy2022 systemd[1836]: Stopped target plasma-workspace-wayland.target.
Aug 16 11:48:37 speedy2022 systemd[1836]: Stopped target plasma-workspace.target - KDE Plasma Workspace.


3. After re-logging in, plasmashell crashed.
(DrKonqi didn't pick up the report, so I'm posting the backtrace manually.)

#0  0x00007a3c9f3ef6e4 in KCrash::defaultCrashHandler (sig=11)
    at /home/jan/kde/src/kcrash/src/kcrash.cpp:529
#1  0x00007a3c9b445320 in <signal handler called> ()
    at /lib/x86_64-linux-gnu/libc.so.6
#2  wl_proxy_get_version (proxy=0x0)
    at ../../src/wayland/src/wayland-client.c:2324
#3  0x00007a3c8ffb5a66 in org_kde_kwin_shadow_manager_unset
    (org_kde_kwin_shadow_manager=0x0, surface=0x57038ae3f820)
    at /home/jan/kde/build/kwindowsystem/src/platforms/wayland/wayland-shadow-client-protocol.h:115
#4  0x00007a3c8ffb6151 in QtWayland::org_kde_kwin_shadow_manager::unset
    (this=0x57038a2f5760, surface=0x57038ae3f820)
    at /home/jan/kde/build/kwindowsystem/src/platforms/wayland/qwayland-shadow.cpp:78
#5  0x00007a3c8ffd4709 in WindowShadow::internalDestroy (this=0x57038acf9d40)
    at /home/jan/kde/src/kwindowsystem/src/platforms/wayland/windowshadow.cpp:195
#6  0x00007a3c8ffd47d6 in WindowShadow::destroy (this=0x57038acf9d40)
    at /home/jan/kde/src/kwindowsystem/src/platforms/wayland/windowshadow.cpp:211
#7  0x00007a3c9e0b4a17 in KWindowShadow::destroy (this=0x57038ae44470)
    at /home/jan/kde/src/kwindowsystem/src/kwindowshadow.cpp:266
#8  0x00007a3c9e0b3bd6 in KWindowShadow::~KWindowShadow
    (this=0x57038ae44470, __in_chrg=<optimized out>)
    at /home/jan/kde/src/kwindowsystem/src/kwindowshadow.cpp:65
#9  0x00007a3c9e0b3c12 in KWindowShadow::~KWindowShadow
    (this=0x57038ae44470, __in_chrg=<optimized out>)
    at /home/jan/kde/src/kwindowsystem/src/kwindowshadow.cpp:66
#10 0x00007a3c9bdd4d9d in QObjectPrivate::deleteChildren
    (this=this@entry=0x57038acf4aa0)
    at /home/jan/kde/src/qtbase/src/corelib/kernel/qobject.cpp:2222
#11 0x00007a3c9bdd9d4f in QObject::~QObject
    (this=<optimized out>, __in_chrg=<optimized out>)
    at /home/jan/kde/src/qtbase/src/corelib/kernel/qobject.cpp:1172
#12 0x00007a3c9e33a1c4 in KSvg::Svg::~Svg
    (this=0x57038acf4a70, __in_chrg=<optimized out>)
    at /home/jan/kde/src/ksvg/src/ksvg/svg.cpp:872
#13 0x00007a3c9fa0bde8 in DialogShadows::~DialogShadows
    (this=0x57038acf4a70, __in_chrg=<optimized out>)
    at /home/jan/kde/src/libplasma/src/plasmaquick/dialogshadows.cpp:63
#14 0x00007a3c9fa0be08 in DialogShadows::~DialogShadows
    (this=0x57038acf4a70, __in_chrg=<optimized out>)
    at /home/jan/kde/src/libplasma/src/plasmaquick/dialogshadows.cpp:63
#15 0x00007a3c9bdd4d9d in QObjectPrivate::deleteChildren
    (this=this@entry=0x570388fd3360)
    at /home/jan/kde/src/qtbase/src/corelib/kernel/qobject.cpp:2222
#16 0x00007a3c9bdd9d4f in QObject::~QObject
    (this=<optimized out>, __in_chrg=<optimized out>)
    at /home/jan/kde/src/qtbase/src/corelib/kernel/qobject.cpp:1172
#17 0x00005703883bd75d in main (argc=2, argv=0x7ffdb2f71e78)
    at /home/jan/kde/src/plasma-workspace/shell/main.cpp:189

ADDITIONAL INFORMATION
self-build Plasma 6.2/Qt 6.7 from 08-13-24
Kubuntu 24.04
Comment 1 Nate Graham 2024-08-16 15:10:48 UTC
Plasma crashing isn't unexpected when the whole session goes down.

I'm assuming you were using a Wayland session, right? Can you get a backtrace of kwin_wayland's crash using `coredumpctl`? See the docs for how to do this at https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports#Retrieving_a_backtrace_using_coredumpctl

Thanks!
Comment 2 Jan Rathmann 2024-08-16 15:38:22 UTC
(In reply to Nate Graham from comment #1)
> Plasma crashing isn't unexpected when the whole session goes down.
> 
> I'm assuming you were using a Wayland session, right? Can you get a
> backtrace of kwin_wayland's crash using `coredumpctl`? See the docs for how
> to do this at
> https://community.kde.org/Guidelines_and_HOWTOs/Debugging/
> How_to_create_useful_crash_reports#Retrieving_a_backtrace_using_coredumpctl
> 
> Thanks!

The interesting thing here is that the crash of plasmashell which left the coredump happened _after_ I re-logged in from SDDM just after the session went down – sorry if I failed to make that clear:
(first) session -> suspend -> resume -> session crashed -> SDDM -> re-login (into second session) -> plasmashell crash shortly after login (backtrace)

Yeah this was from the Wayland session. Unfortunately, kwin crashing/quitting hasn't left anything in /var/lib/systemd/coredump – the lines from `journalctl --user` that I posted in the report are the only remains I could find from the unexpected session crash that preceded this plasmashell crash (which happened shortly after loggin in again, as described above).
Comment 3 Nate Graham 2024-08-21 15:28:16 UTC
Hmm, OK. Thanks anyway.
Comment 4 TraceyC 2024-09-24 17:20:50 UTC
Just as a data point, I haven't seen this kind of crash on my git-master system, either in Wayland or X11. I also searched through my crash dump files and I see no instance of org_kde_kwin_shadow_manager_unset. I don't know what might be different between our systems.