SUMMARY I logged into Plasma 5.25.5 on Wayland from sddm on Wayland in a Fedora 37 KDE Plasma installation. I moved the cursor to the top-left corner of the screen when the splash screen was shown during login. The top-left of the screen turned blue, and the splash screen became smaller with a blurred border around it. The screen went black, with only a text cursor _ shown. Plasma started after several seconds. coredumpctl gdb showed that kwin_wayland had crashed with a failed assertion in libepoxy Couldn't find current GLX or EGL context. as shown in frames #4 and 5 of the trace. Core was generated by `/usr/bin/kwin_wayland --wayland-fd 7 --socket wayland-0 --xwayland-fd 8 --xwayl'. Program terminated with signal SIGABRT, Aborted. #0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44 44 return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0; [Current thread is 1 (Thread 0x7f43a3fa4980 (LWP 1414))] (gdb) bt #0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44 #1 0x00007f43a2aa9d33 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78 #2 0x00007f43a2a59aa6 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26 #3 0x00007f43a2a437fc in __GI_abort () at abort.c:79 #4 0x00007f43a2a4371b in __assert_fail_base (fmt=0x7f43a2bb79c0 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x7f43a476e750 "0 && \"Couldn't find current GLX or EGL context.\\n\"", file=0x7f43a476e841 "../src/dispatch_common.c", line=872, function=<optimized out>) at assert.c:92 #5 0x00007f43a2a52656 in __GI___assert_fail (assertion=assertion@entry=0x7f43a476e750 "0 && \"Couldn't find current GLX or EGL context.\\n\"", file=file@entry=0x7f43a476e841 "../src/dispatch_common.c", line=line@entry=872, function=function@entry=0x7f43a476eca0 <__PRETTY_FUNCTION__.0.lto_priv.0> "epoxy_get_proc_address") at assert.c:101 #6 0x00007f43a474a90f in epoxy_get_proc_address (name=0x7f43a4755059 <entrypoint_strings.lto_priv+9593> "glDeleteFramebuffers") at ../src/dispatch_common.c:872 #7 0x00007f43a46f899a in epoxy_glDeleteFramebuffers_resolver () at src/gl_generated_dispatch.c:81572 #8 epoxy_glDeleteFramebuffers_global_rewrite_ptr (n=1, framebuffers=0x7ffc934e90d0) at src/gl_generated_dispatch.c:49446 #9 0x000055ff13f431b9 in operator() (__closure=0x55ff15ddf0d0) at /usr/src/debug/kwin-5.25.5-1.fc37.x86_64/src/effects/screentransform/screentransform.cpp:74 #10 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KWin::ScreenTransformEffect::addScreen(KWin::EffectScreen*)::<lambda()> >::call (arg=<optimized out>, f=...) --Type <RET> for more, q to quit, c to continue without paging--c at /usr/include/qt5/QtCore/qobjectdefs_impl.h:146 #11 QtPrivate::Functor<KWin::ScreenTransformEffect::addScreen(KWin::EffectScreen*)::<lambda()>, 0>::call<QtPrivate::List<>, void> (arg=<optimized out>, f=...) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:256 #12 QtPrivate::QFunctorSlotObject<KWin::ScreenTransformEffect::addScreen(KWin::EffectScreen*)::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=0x55ff15ddf0c0, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:443 #13 0x00007f43a3cdb9a6 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffc934e91b0, r=<optimized out>, this=0x55ff15ddf0c0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #14 doActivate<false>(QObject*, int, void**) (sender=0x55ff15d80b00, signal_index=7, argv=0x7ffc934e91b0) at kernel/qobject.cpp:3919 #15 0x00007f43a3cdb9a6 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffc934e9280, r=<optimized out>, this=0x55ff15d737a0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #16 doActivate<false>(QObject*, int, void**) (sender=0x55ff15157f70, signal_index=8, argv=0x7ffc934e9280) at kernel/qobject.cpp:3919 #17 0x00007f43a3cd6927 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x55ff15157f70, m=m@entry=0x7f43a531b720 <KWin::Output::staticMetaObject>, local_signal_index=local_signal_index@entry=5, argv=argv@entry=0x0) at kernel/qobject.cpp:3979 #18 0x00007f43a4f85437 in KWin::Output::aboutToChange() (this=this@entry=0x55ff15157f70) at /usr/src/debug/kwin-5.25.5-1.fc37.x86_64/redhat-linux-build/src/kwin_autogen/EWIEGA46WW/moc_output.cpp:397 #19 0x00007f438fbe3c95 in KWin::DrmOutput::applyQueuedChanges(KWin::OutputConfiguration const&) (config=..., this=0x55ff15157f70) at /usr/src/debug/kwin-5.25.5-1.fc37.x86_64/src/backends/drm/drm_output.cpp:373 #20 KWin::DrmOutput::applyQueuedChanges(KWin::OutputConfiguration const&) (this=0x55ff15157f70, config=...) at /usr/src/debug/kwin-5.25.5-1.fc37.x86_64/src/backends/drm/drm_output.cpp:368 #21 0x00007f438fbcdd27 in KWin::DrmBackend::applyOutputChanges(KWin::OutputConfiguration const&) (this=<optimized out>, config=...) at /usr/src/debug/kwin-5.25.5-1.fc37.x86_64/src/backends/drm/drm_backend.cpp:733 #22 0x00007f43a504aaab in KWin::Platform::requestOutputsChange(KWaylandServer::OutputConfigurationV2Interface*) (this=0x55ff14f5ac40, config=0x55ff16711ae0) at /usr/src/debug/kwin-5.25.5-1.fc37.x86_64/src/platform.cpp:138 #23 0x00007f43a3cdb9a6 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffc934e9590, r=<optimized out>, this=0x55ff14f4a330) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #24 doActivate<false>(QObject*, int, void**) (sender=0x55ff14f4a200, signal_index=3, argv=0x7ffc934e9590) at kernel/qobject.cpp:3919 #25 0x00007f43a3cd6927 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=<optimized out>, m=m@entry=0x7f43a53214e0 <KWaylandServer::OutputManagementV2Interface::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffc934e9590) at kernel/qobject.cpp:3979 #26 0x00007f43a4f99de3 in KWaylandServer::OutputManagementV2Interface::configurationChangeRequested(KWaylandServer::OutputConfigurationV2Interface*) (this=<optimized out>, _t1=<optimized out>) at /usr/src/debug/kwin-5.25.5-1.fc37.x86_64/redhat-linux-build/src/kwin_autogen/IEXH3JLKNG/moc_outputmanagement_v2_interface.cpp:136 #27 0x00007f43a06706d6 in ffi_call_unix64 () at /lib64/libffi.so.8 #28 0x00007f43a066d492 in ffi_call_int.lto_priv () at /lib64/libffi.so.8 #29 0x00007f43a217a728 in wl_closure_invoke (closure=closure@entry=0x55ff16821c00, target=<optimized out>, target@entry=0x55ff16210660, opcode=opcode@entry=5, data=<optimized out>, data@entry=0x55ff1604e710, flags=2) at ../src/connection.c:1025 #30 0x00007f43a217eac8 in wl_client_connection_data (fd=<optimized out>, mask=<optimized out>, data=<optimized out>) at ../src/wayland-server.c:437 #31 0x00007f43a217d532 in wl_event_loop_dispatch (loop=0x55ff14f55e70, timeout=<optimized out>) at ../src/event-loop.c:1027 #32 0x00007f43a514d2b9 in KWaylandServer::Display::dispatchEvents() (this=<optimized out>) at /usr/src/debug/kwin-5.25.5-1.fc37.x86_64/src/wayland/display.cpp:114 #33 0x00007f43a3cdb9a6 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffc934e9de0, r=<optimized out>, this=0x7f438801b140) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #34 doActivate<false>(QObject*, int, void**) (sender=0x55ff15d830b0, signal_index=3, argv=0x7ffc934e9de0) at kernel/qobject.cpp:3919 #35 0x00007f43a3cd6927 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x55ff15d830b0, m=m@entry=0x7f43a3f6d460 <QSocketNotifier::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffc934e9de0) at kernel/qobject.cpp:3979 #36 0x00007f43a3cde213 in QSocketNotifier::activated(QSocketDescriptor, QSocketNotifier::Type, QSocketNotifier::QPrivateSignal) (this=this@entry=0x55ff15d830b0, _t1=..., _t2=<optimized out>, _t3=...) at .moc/moc_qsocketnotifier.cpp:178 #37 0x00007f43a3cdea35 in QSocketNotifier::event(QEvent*) (this=0x55ff15d830b0, e=<optimized out>) at kernel/qsocketnotifier.cpp:302 #38 0x00007f43a31aed02 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x55ff15d830b0, e=0x7ffc934e9ee0) at kernel/qapplication.cpp:3637 #39 0x00007f43a3ca81c8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55ff15d830b0, event=0x7ffc934e9ee0) at kernel/qcoreapplication.cpp:1064 #40 0x00007f43a3cf64be in QEventDispatcherUNIXPrivate::activateSocketNotifiers() (this=0x55ff14f14d80) at kernel/qeventdispatcher_unix.cpp:304 #41 0x00007f43a3cf68fd in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at kernel/qeventdispatcher_unix.cpp:511 #42 0x000055ff13fdeb41 in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () #43 0x00007f43a3ca6c1a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffc934ea050, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #44 0x00007f43a3caece2 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #45 0x00007f43a415fbe0 in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1863 #46 0x00007f43a31aec79 in QApplication::exec() () at kernel/qapplication.cpp:2829 #47 0x000055ff13f0935a in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kwin-5.25.5-1.fc37.x86_64/src/main_wayland.cpp:642 Other KDE programs crashed with errors that the Wayland connection had been broken. kwin_wayland crashed 3 out of 3 times I moved the cursor to the top-left of the splash screen with the same trace. The crash didn't happen otherwise. I opened the Application launcher menu and selected Restart after the kwin_wayland crash. The menu became unresponsive for about a minute which didn't normally happen. STEPS TO REPRODUCE 1. Boot a Fedora 37 KDE Plasma installation updated to 2022-9-29 with updates-testing enabled. I'm using sddm on Wayland with kwin_wayland compositor as configured by sddm-wayland-plasma-5.25.5-1.fc37.noarch. 2. Log in to Plasma 5.25.5 on Wayland from sddm 3. Move the cursor to the top-left corner of the splash screen so that it turns blue and the splash screen shrinks with a blurry border around it. OBSERVED RESULT kwin_wayland crashed when moving the cursor to the top-left corner of the screen when the splash screen was shown during login EXPECTED RESULT kwin_wayland wouldn't crash when moving the cursor to the top-left corner of the screen when the splash screen was shown during login SOFTWARE/OS VERSIONS Linux/KDE Plasma: Fedora 37 (available in About System) KDE Plasma Version: 5.25.5 KDE Frameworks Version: 5.98.0 Qt Version: 5.15.6 ADDITIONAL INFORMATION I reported kwin_wayland crashes when moving the cursor to the top-left corner of the splash screen which had different traces at https://bugs.kde.org/show_bug.cgi?id=434686
Can you verify whether the crash is reproducible in 5.26?
(In reply to Vlad Zahorodnii from comment #1) > Can you verify whether the crash is reproducible in 5.26? This problem didn't happen when I tried to reproduce it a few times with Plasma 5.25.90 when booting a Fedora Rawhide/38 KDE Plasma live image Fedora-KDE-Live-x86_64-Rawhide-20220927.n.0.iso from https://koji.fedoraproject.org/koji/buildinfo?buildID=2067704 on bare metal from a USB flash drive. Plasma 5.25.90 might not be affected or the problem might not have happened because of some difference between my Fedora 37 installation and the Fedora Rawhide live image. I'll comment again if I see this problem with the Plasma 5.26 branch. Thanks
> KWin::ScreenTransformEffect::addScreen That's a bit odd
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/4190
FWICT the code looks fine now. The relevant parts are guarded correctly. Lets assume fixed until evidence shows otherwise.