https://bugs.kde.org/show_bug.cgi?id=459837
Bug ID: 459837 Summary: kwin_wayland crashed when moving the cursor to the top-left corner of the screen when the splash screen was shown during login Classification: Plasma Product: kwin Version: 5.25.5 Platform: Fedora RPMs OS: Linux Status: REPORTED Severity: normal Priority: NOR Component: wayland-generic Assignee: kwin-bugs-n...@kde.org Reporter: matt.fagn...@bell.net Target Milestone: --- 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 -- You are receiving this mail because: You are watching all bug changes.