Bug 434686 - kwin_wayland aborted in egl_provider_resolver when the splash screen was shown
Summary: kwin_wayland aborted in egl_provider_resolver when the splash screen was shown
Status: RESOLVED DUPLICATE of bug 470980
Alias: None
Product: kwin
Classification: Plasma
Component: wayland-generic (other bugs)
Version First Reported In: 5.21.3
Platform: Fedora RPMs Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
: 459454 (view as bug list)
Depends on:
Blocks:
 
Reported: 2021-03-20 19:24 UTC by Matt Fagnani
Modified: 2023-08-30 13:20 UTC (History)
4 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Matt Fagnani 2021-03-20 19:24:37 UTC
SUMMARY

I was logging into Plasma 5.21.3 on Wayland in a Fedora 34 KDE Plasma installation. The splash screen was shown. I moved the cursor to the top left of the screen, and the top left turned blue. kwin_wayland aborted in egl_provider_resolver at src/egl_generated_dispatch.c:3911 in libepoxy-1.5.5-2.fc34. The trace showed that kwin_wayland might've been destroying an EGL DMAbuf buffer in frames 3 to 8.

Core was generated by `kwin_wayland --wayland_fd 4 --xwayland /usr/libexec/startplasma-waylandsession'.
Program terminated with signal SIGABRT, Aborted.
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49
49        return ret;
[Current thread is 1 (Thread 0x7ffa879b8940 (LWP 5407))]

(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49
#1  0x00007ffa868a1950 in __GI_abort () at abort.c:100
#2  0x00007ffa86e0bcb9 in egl_provider_resolver
    (name=name@entry=0x7ffa86e31b5c <entrypoint_strings+988> "eglDestroyImageKHR", providers=providers@entry=0x7ffa86e31704 <providers.23.lto_priv>, entrypoints=entrypoints@entry=0x7ffa86e316f8 <entrypoints.22.lto_priv>) at src/egl_generated_dispatch.c:3911
#3  0x00007ffa86e0f55a in epoxy_eglDestroyImageKHR_resolver () at src/egl_generated_dispatch.c:4264
#4  epoxy_eglDestroyImageKHR_global_rewrite_ptr (dpy=0x55b7fbe3a490, image=0x55b7fca06680)
    at src/egl_generated_dispatch.c:5059
#5  0x00007ffa73382be7 in KWin::EglDmabufBuffer::removeImages() (this=this@entry=0x55b7fca38d40)
    at /usr/src/debug/kwin-5.21.3-1.fc34.x86_64/platformsupport/scenes/opengl/egl_dmabuf.cpp:166
#6  0x00007ffa73382d97 in KWin::EglDmabufBuffer::~EglDmabufBuffer()
    (this=0x55b7fca38d40, this=<optimized out>)
    at /usr/src/debug/kwin-5.21.3-1.fc34.x86_64/platformsupport/scenes/opengl/egl_dmabuf.cpp:150
#7  KWin::EglDmabufBuffer::~EglDmabufBuffer() (this=0x55b7fca38d40, this=<optimized out>)
    at /usr/src/debug/kwin-5.21.3-1.fc34.x86_64/platformsupport/scenes/opengl/egl_dmabuf.cpp:151
#8  0x00007ffa8454f0cf in destroy_resource (element=0x55b7fca28d80, data=data@entry=0x0, flags=0)
    at ../src/wayland-server.c:724
#9  0x00007ffa84550bb1 in wl_resource_destroy (resource=<optimized out>)
    at ../src/wayland-server.c:741
#10 0x00007ffa81db9c04 in ffi_call_unix64 () at ../src/x86/unix64.S:76
#11 0x00007ffa81db9107 in ffi_call
    (cif=cif@entry=0x7ffc41d5cd00, fn=<optimized out>, rvalue=<optimized out>, 
    rvalue@entry=0x0, avalue=avalue@entry=0x7ffc41d5cdd0) at ../src/x86/ffi64.c:525
#12 0x00007ffa8454c670 in wl_closure_invoke
--Type <RET> for more, q to quit, c to continue without paging--c
    (closure=closure@entry=0x55b7fcdf7cf0, target=<optimized out>, target@entry=0x55b7fca28d80, opcode=opcode@entry=0, data=<optimized out>, data@entry=0x55b7fc9f6320, flags=<optimized out>) at ../src/connection.c:1018
#13 0x00007ffa845506e4 in wl_client_connection_data (fd=<optimized out>, mask=<optimized out>, data=0x55b7fc9f6320) at ../src/wayland-server.c:432
#14 0x00007ffa8454f21a in wl_event_loop_dispatch (loop=0x55b7fbc19230, timeout=<optimized out>) at ../src/event-loop.c:1027
#15 0x00007ffa86f59c6a in KWaylandServer::Display::dispatchEvents() (this=<optimized out>) at /usr/src/debug/kwayland-server-5.21.3-1.fc34.x86_64/src/server/display.cpp:107
#16 0x00007ffa883b24b0 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffc41d5d3f0, r=<optimized out>, this=0x55b7fbc0edd0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#17 doActivate<false>(QObject*, int, void**) (sender=0x55b7fc625520, signal_index=3, argv=0x7ffc41d5d3f0) at kernel/qobject.cpp:3886
#18 0x00007ffa883ac9e7 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x55b7fc625520, m=m@entry=0x7ffa88647440 <QSocketNotifier::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffc41d5d3f0) at kernel/qobject.cpp:3946
#19 0x00007ffa883b4b3a in QSocketNotifier::activated(QSocketDescriptor, QSocketNotifier::Type, QSocketNotifier::QPrivateSignal) (this=this@entry=0x55b7fc625520, _t1=..., _t2=<optimized out>, _t3=...) at .moc/moc_qsocketnotifier.cpp:178
#20 0x00007ffa883b52d4 in QSocketNotifier::event(QEvent*) (this=0x55b7fc625520, e=<optimized out>) at kernel/qsocketnotifier.cpp:302
#21 0x00007ffa87380e73 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x55b7fc625520, e=0x7ffc41d5d510) at kernel/qapplication.cpp:3632
#22 0x00007ffa88381f48 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55b7fc625520, event=0x7ffc41d5d510) at kernel/qcoreapplication.cpp:1063
#23 0x00007ffa883cba6e in QEventDispatcherUNIXPrivate::activateSocketNotifiers() (this=0x55b7fbbe7720) at kernel/qeventdispatcher_unix.cpp:304
#24 0x00007ffa883cbde5 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at kernel/qeventdispatcher_unix.cpp:511
#25 0x000055b7fade4e11 in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
#26 0x00007ffa883809b2 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffc41d5d680, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#27 0x00007ffa88388544 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#28 0x000055b7fad915b4 in main(int, char**) (argc=<optimized out>, argv=0x7ffc41d5d8c0) at /usr/src/debug/kwin-5.21.3-1.fc34.x86_64/main_wayland.cpp:788

KDE programs depending on kwin_wayland also aborted. kwin_wayland restarted automatically, and Plasma started after about 10 seconds. 

STEPS TO REPRODUCE
1. Boot a Fedora 34 KDE Plasma installation updated to 2021-3-19 with the updates-testing repo enabled. 
2. log into Plasma 5.21.3 on Wayland 
3. move the cursor to the top left of the screen when the splash screen is shown

OBSERVED RESULT
kwin_wayland aborted in egl_provider_resolver when the splash screen was shown

EXPECTED RESULT
No crash would happen.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Fedora 34
(available in About System)
KDE Plasma Version: 5.21.3
KDE Frameworks Version: 5.80.0
Qt Version: 5.15.2

ADDITIONAL INFORMATION

coredumpctl had crashes with the same trace from 5.20.4 and 5.20.90 which also happened when logging in to Plasma.
Comment 1 Nicolas Fella 2022-09-21 06:37:41 UTC
*** Bug 459454 has been marked as a duplicate of this bug. ***
Comment 2 Vlad Zahorodnii 2023-08-30 13:20:02 UTC

*** This bug has been marked as a duplicate of bug 470980 ***