Bug 509439 - After suspending the computer with an external display attached, the kwin_wayland process crashed.
Summary: After suspending the computer with an external display attached, the kwin_way...
Status: NEEDSINFO BACKTRACE
Alias: None
Product: kwin
Classification: Plasma
Component: wayland-generic (other bugs)
Version First Reported In: 6.4.4
Platform: Other Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-09-12 22:38 UTC by Filip
Modified: 2025-09-17 00:36 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
"journalctl -b | grep kwin" output (17.45 KB, text/x-log)
2025-09-12 22:38 UTC, Filip
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Filip 2025-09-12 22:38:24 UTC
Created attachment 184921 [details]
"journalctl -b | grep kwin" output

SUMMARY
After suspending the computer with an external display attached, the kwin_wayland process crashed.

OBSERVED RESULT
When waking up the computer from sleep, the login screen briefly appears before switching to a black, terminal-like screen. I am able to type into this screen, but the system does not respond to any input. I can access tty, but it is not possible to interact with plasma in a functional way. If I execute "killall -9 kwin_wayland" from the tty, I am then returned to the login screen and everything operates as normal, except I am unable to access tty again after this step.

The bug is highly reproducible. It appears only when using Wayland with an additional display attached through the HDMI port. This happens if I put the computer into suspend manually, as well as if I leave it to suspend itself over time. When using the built-in screen only or when using X11, the computer wakes from sleep normally with no issue. "nvidia-smi" works correctly as well.

I have been using the same hardware configuration for months with no issues. The bug appeared after the last update - maybe OS related.

Operating System: TUXEDO OS 
KDE Plasma Version: 6.4.4
KDE Frameworks Version: 6.17.0
Qt Version: 6.8.2
Kernel Version: 6.14.0-110029-tuxedo (64-bit)
Graphics Platform: Wayland
Processors: 16 × AMD Ryzen 7 8845HS w/ Radeon 780M Graphics
Memory: 32 GiB of RAM (30.6 GiB usable)
Graphics Processor 1: AMD Radeon Graphics
Graphics Processor 2: llvmpipe

GPU: NVIDIA GeForce 4060 mobile
Driver: 570.153.02
CUDA: 12.8

ADDITIONAL INFORMATION
For output of "journalctl -b | grep kwin" see attachment
Comment 1 TraceyC 2025-09-16 17:14:58 UTC
As the message at the top of the summary says, if something crashed, we need a backtrace of it so we can figure out what's going on. Can you please install debug packages for your distro, and attach a backtrace of the crash using the coredumpctl command-line program, as detailed in https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports#Retrieving_a_backtrace_using_coredumpctl ?

Thanks.
Comment 2 Filip 2025-09-17 00:36:20 UTC
#0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44
        tid = <optimized out>
        ret = 0
        pd = <optimized out>
        old_mask = {__val = {0}}
        ret = <optimized out>
        pd = <optimized out>
        old_mask = {__val = {<optimized out>}}
        ret = <optimized out>
        tid = <optimized out>
        ret = <optimized out>
        resultvar = <optimized out>
        resultvar = <optimized out>
        __arg3 = <optimized out>
        __arg2 = <optimized out>
        __arg1 = <optimized out>
        _a3 = <optimized out>
        _a2 = <optimized out>
        _a1 = <optimized out>
        __futex = <optimized out>
        resultvar = <optimized out>
        __arg3 = <optimized out>
        __arg2 = <optimized out>
        __arg1 = <optimized out>
        _a3 = <optimized out>
        _a2 = <optimized out>
        _a1 = <optimized out>
        __futex = <optimized out>
        __private = <optimized out>
        __oldval = <optimized out>
#1  __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#2  __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3  0x00007b22fb64527e in __GI_raise (sig=6) at ../sysdeps/posix/raise.c:26
        ret = <optimized out>
#4  0x00007b22ff11ce12 in KCrash::defaultCrashHandler(int) () at /lib/x86_64-linux-gnu/libKF6Crash.so.6
#5  0x00007b22fb645330 in <signal handler called> () at /lib/x86_64-linux-gnu/libc.so.6
#6  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44
        tid = <optimized out>
        ret = 0
        pd = <optimized out>
        old_mask = {__val = {135390063471872}}
        ret = <optimized out>
        pd = <optimized out>
        old_mask = {__val = {<optimized out>}}
        ret = <optimized out>
        tid = <optimized out>
        ret = <optimized out>
        resultvar = <optimized out>
        resultvar = <optimized out>
        __arg3 = <optimized out>
        __arg2 = <optimized out>
        __arg1 = <optimized out>
        _a3 = <optimized out>
        _a2 = <optimized out>
        _a1 = <optimized out>
        __futex = <optimized out>
        resultvar = <optimized out>
        __arg3 = <optimized out>
        __arg2 = <optimized out>
        __arg1 = <optimized out>
        _a3 = <optimized out>
        _a2 = <optimized out>
        _a1 = <optimized out>
        __futex = <optimized out>
        __private = <optimized out>
        __oldval = <optimized out>
#7  __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#8  __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#9  0x00007b22fb64527e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
        ret = <optimized out>
#10 0x00007b22fb6288ff in __GI_abort () at ./stdlib/abort.c:79
        save_stage = 1
        act = {__sigaction_handler = {sa_handler = 0x20, sa_sigaction = 0x20}, sa_mask = {__val = {100727117577536, 100727098613776, 7, 100727098715979, 100727098715968, 0, 4, 47244640256, 0, 140731506837656, 18446744073709551080, 11, 100727117577520, 140731506837696, 135390177189294, 135390178591968}}, sa_flags = -1975338752, sa_restorer = 0x7ffe9b7948c0}
#11 0x00007b22fb62881b in __assert_fail_base
    (fmt=0x7b22fb7d01e8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x7b22ff0ceec8 "0 && \"Couldn't find current GLX or EGL context.\\n\"", file=file@entry=0x7b22ff0cefcd "../src/dispatch_common.c", line=line@entry=--Type <RET> for more, q to quit, c to continue without paging--
872, function=function@entry=0x7b22ff0d9ca0 <__PRETTY_FUNCTION__.0.lto_priv.0> "epoxy_get_proc_address") at ./assert/assert.c:96
        str = 0x5b9c5c0ffd40 "\377\300Ź\005"
        total = 4096
#12 0x00007b22fb63b517 in __assert_fail
    (assertion=assertion@entry=0x7b22ff0ceec8 "0 && \"Couldn't find current GLX or EGL context.\\n\"", file=file@entry=0x7b22ff0cefcd "../src/dispatch_common.c", line=line@entry=872, function=function@entry=0x7b22ff0d9ca0 <__PRETTY_FUNCTION__.0.lto_priv.0> "epoxy_get_proc_address") at ./assert/assert.c:105
#13 0x00007b22ff0b5e3b in epoxy_get_proc_address (name=0x7b22ff0c0159 <entrypoint_strings.lto_priv+9849> "glDeleteProgram") at ../src/dispatch_common.c:872
        egl_api = <optimized out>
        __PRETTY_FUNCTION__ = "epoxy_get_proc_address"
#14 0x00007b22ff0640ea in epoxy_glDeleteProgram_resolver () at src/gl_generated_dispatch.c:81668
        providers = {<optimized out>, <optimized out>, <optimized out>}
        entrypoints = {<optimized out>, <optimized out>}
#15 epoxy_glDeleteProgram_global_rewrite_ptr (program=4) at src/gl_generated_dispatch.c:114994
#16 0x00007b22fe95d7be in KWin::GLShader::~GLShader() () at /lib/x86_64-linux-gnu/libkwin.so.6
#17 0x00007b22fe96670e in ??? () at /lib/x86_64-linux-gnu/libkwin.so.6
#18 0x00007b22fe9666f8 in ??? () at /lib/x86_64-linux-gnu/libkwin.so.6
#19 0x00007b22fe966d58 in KWin::ShaderManager::~ShaderManager() () at /lib/x86_64-linux-gnu/libkwin.so.6
#20 0x00007b22fe949405 in KWin::EglContext::~EglContext() () at /lib/x86_64-linux-gnu/libkwin.so.6
#21 0x00005b9c594e8a36 in ??? ()
#22 0x00007b22feb25bdc in ??? () at /lib/x86_64-linux-gnu/libkwin.so.6
#23 0x00007b22feb2ac38 in ??? () at /lib/x86_64-linux-gnu/libkwin.so.6
#24 0x00007b22feb21a4f in ??? () at /lib/x86_64-linux-gnu/libkwin.so.6
#25 0x00007b22fe84ec54 in KWin::OutputLayer::beginFrame() () at /lib/x86_64-linux-gnu/libkwin.so.6
#26 0x00007b22fe82d2d3 in KWin::Compositor::composite(KWin::RenderLoop*) () at /lib/x86_64-linux-gnu/libkwin.so.6
#27 0x00007b22fbfe2815 in ??? () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#28 0x00007b22fe853016 in KWin::RenderLoop::frameRequested(KWin::RenderLoop*) () at /lib/x86_64-linux-gnu/libkwin.so.6
#29 0x00007b22fbfe2815 in ??? () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#30 0x00007b22fbfe7c7e in QTimer::timeout(QTimer::QPrivateSignal) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#31 0x00007b22fbfd7106 in QObject::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#32 0x00007b22fcfcab75 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt6Widgets.so.6
#33 0x00007b22fbf9aa80 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#34 0x00007b22fc0cf93b in QTimerInfoList::activateTimers() () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#35 0x00007b22fc0d66a4 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#36 0x00007b22fc98fc21 in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt6Gui.so.6
#37 0x00007b22fbfa4fdb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#38 0x00007b22fbf9e2f6 in QCoreApplication::exec() () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#39 0x00005b9c594ba01e in ??? ()
#40 0x00007b22fb62a1ca in __libc_start_call_main (main=main@entry=0x5b9c594b8050, argc=argc@entry=14, argv=argv@entry=0x7ffe9b796188) at ../sysdeps/nptl/libc_start_call_main.h:58
        self = <optimized out>
        result = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140731506844040, 4277368831547346094, 14, 0, 100727072391768, 135390240813056, 4277368831574609070, 3667201671956991150}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0xe, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 14}}}
        not_first_call = <optimized out>
#41 0x00007b22fb62a28b in __libc_start_main_impl (main=0x5b9c594b8050, argc=14, argv=0x7ffe9b796188, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffe9b796178) at ../csu/libc-start.c:360
#42 0x00005b9c594bbd65 in ??? ()