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.

Reply via email to