Bug 435132 - Wayland session restarts while dragging windows or alt-tab switching, then several clients crash
Summary: Wayland session restarts while dragging windows or alt-tab switching, then se...
Status: RESOLVED WORKSFORME
Alias: None
Product: kwin
Classification: Plasma
Component: wayland-generic (show other bugs)
Version: git master
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-03-30 01:47 UTC by Bernie Innocenti
Modified: 2023-01-17 13:51 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 Bernie Innocenti 2021-03-30 01:47:09 UTC
SUMMARY

The Wayland session has become unusably unstable in git master. It seems kwin_wayland (or maybe plasmashell) crashes randomly while dragging windows or pressing alt-tab. It does _NOT_ happen when switching windows by clicking in them.

The session also restarts, but clients don't survive (probably this isn't even possible with Wayland).

STEPS TO REPRODUCE
1. launch wayland session
2. drag some window around (konsole, chromium...)
3. repeat until crash occurs (easy to reproduce for me)

KDE Plasma Version: 5.21.80
KDE Frameworks Version: 5.81
Qt Version: 5.15.2

ADDITIONAL INFORMATION
Graphics: amdgpu
Kernel:
Comment 1 Bernie Innocenti 2021-03-30 01:48:43 UTC
This is the stack trace of one of the clients crashing after the session restart:

Application: The KDE Crash Handler (drkonqi), signal: Aborted

[KCrash Handler]
#4  0x00007f143c894ef5 in raise () from /usr/lib/libc.so.6
#5  0x00007f143c87e862 in abort () from /usr/lib/libc.so.6
#6  0x00007f143ccac9ac in QMessageLogger::fatal(char const*, ...) const () from /usr/lib/libQt5Core.so.5
#7  0x00007f143b7620fa in ?? () from /usr/lib/libQt5WaylandClient.so.5
#8  0x00007f143b771465 in QtWaylandClient::QWaylandDisplay::flushRequests() () from /usr/lib/libQt5WaylandClient.so.5
#9  0x00007f143cf08dc0 in ?? () from /usr/lib/libQt5Core.so.5
#10 0x00007f143cf0c2f0 in QSocketNotifier::activated(QSocketDescriptor, QSocketNotifier::Type, QSocketNotifier::QPrivateSignal) () from /usr/lib/libQt5Core.so.5
#11 0x00007f143cf0cafd in QSocketNotifier::event(QEvent*) () from /usr/lib/libQt5Core.so.5
#12 0x00007f143dabb752 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#13 0x00007f143ced1a2a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#14 0x00007f143cf2b2a6 in ?? () from /usr/lib/libQt5Core.so.5
#15 0x00007f143b883f9c in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#16 0x00007f143b8d7a49 in ?? () from /usr/lib/libglib-2.0.so.0
#17 0x00007f143b8816f1 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#18 0x00007f143cf2a691 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#19 0x00007f143ced03ac in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#20 0x00007f143ced8844 in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
#21 0x0000558367f45dca in ?? ()
#22 0x00007f143c87fb25 in __libc_start_main () from /usr/lib/libc.so.6
#23 0x0000558367f4667e in _start ()
[Inferior 1 (process 7214) detached]
Comment 2 Bernie Innocenti 2021-03-30 02:17:00 UTC
I was able to capture a stack trace of kwin_wayland crashing:

Thread 1 "kwin_wayland" received signal SIGABRT, Aborted.
0x00007f98955e4ef5 in raise () from /usr/lib/libc.so.6
(gdb) bt
#0  0x00007f98955e4ef5 in raise () at /usr/lib/libc.so.6
#1  0x00007f98955ce862 in abort () at /usr/lib/libc.so.6
#2  0x00007f9898abc9ac in  () at /usr/lib/libQt5Core.so.5
#3  0x00007f9897b14a79 in QSGRenderLoop::handleContextCreationFailure(QQuickWindow*) () at /usr/lib/libQt5Quick.so.5
#4  0x00007f9897b15fe0 in  () at /usr/lib/libQt5Quick.so.5
#5  0x00007f9897b177da in  () at /usr/lib/libQt5Quick.so.5
#6  0x00007f98990c9b95 in QWindow::event(QEvent*) () at /usr/lib/libQt5Gui.so.5
#7  0x00007f98964b2752 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#8  0x00007f9898ce1a2a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#9  0x00007f98990bea20 in QGuiApplicationPrivate::processExposeEvent(QWindowSystemInterfacePrivate::ExposeEvent*) () at /usr/lib/libQt5Gui.so.5
#10 0x00007f9899092bb5 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Gui.so.5
#11 0x00007f9899092e39 in QWindowSystemInterface::flushWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Gui.so.5
#12 0x00007f98990aa118 in QPlatformWindow::setVisible(bool) () at /usr/lib/libQt5Gui.so.5
#13 0x00007f98914021d9 in KWin::QPA::Window::setVisible(bool) (this=0x55590fadfa60, visible=true) at /home/bernie/kde/src/kwin/plugins/qpa/window.cpp:58
#14 0x00007f98990c971b in QWindowPrivate::setVisible(bool) () at /usr/lib/libQt5Gui.so.5
#15 0x00007f989772e2af in  () at /usr/lib/libQt5Qml.so.5
#16 0x00007f989772eca6 in  () at /usr/lib/libQt5Qml.so.5
#17 0x00007f989772c914 in QQmlBinding::update(QFlags<QQmlPropertyData::WriteFlag>) () at /usr/lib/libQt5Qml.so.5
--Type <RET> for more, q to quit, c to continue without paging--
#18 0x00007f989770900d in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) () at /usr/lib/libQt5Qml.so.5
#19 0x00007f9898d18905 in  () at /usr/lib/libQt5Core.so.5
#20 0x00007f9898398db9 in KWin::Outline::activeChanged() (this=0x55590f05e7b0) at /home/bernie/kde/build/kwin/src/kwin_autogen/EWIEGA46WW/moc_outline.cpp:226
#21 0x00007f98984f833f in KWin::Outline::show() (this=0x55590f05e7b0) at /home/bernie/kde/src/kwin/src/outline.cpp:54
#22 0x00007f98984f844e in KWin::Outline::show(QRect const&, QRect const&) (this=0x55590f05e7b0, outlineGeometry=..., visualParentGeometry=...)
    at /home/bernie/kde/src/kwin/src/outline.cpp:79
#23 0x00007f98983cff20 in KWin::AbstractClient::setElectricBorderMaximizing(bool) (this=0x55590fa9cf10, maximizing=true) at /home/bernie/kde/src/kwin/src/abstract_client.cpp:3048
#24 0x00007f98983cc75c in KWin::AbstractClient::checkQuickTilingMaximizationZones(int, int) (this=0x55590fa9cf10, xroot=20, yroot=211)
    at /home/bernie/kde/src/kwin/src/abstract_client.cpp:2246
#25 0x00007f98983c63f4 in KWin::AbstractClient::handleMoveResize(QPoint const&, QPoint const&) (this=0x55590fa9cf10, local=..., global=...)
    at /home/bernie/kde/src/kwin/src/abstract_client.cpp:1130
#26 0x00007f98983c5f9a in KWin::AbstractClient::updateMoveResize(QPointF const&) (this=0x55590fa9cf10, currentGlobalCursor=...) at /home/bernie/kde/src/kwin/src/abstract_client.cpp:1112
#27 0x00007f98984997d8 in KWin::MoveResizeFilter::pointerEvent(QMouseEvent*, unsigned int) (this=0x55590f0275e0, event=0x7ffe773999b0, nativeButton=0)
    at /home/bernie/kde/src/kwin/src/input.cpp:513
#28 0x00007f989851a41a in std::__invoke_impl<bool, bool (KWin::InputEventFilter::*&)(QMouseEvent*, unsigned int), KWin::InputEventFilter* const&, KWin::MouseEvent*&, int&>(std::__invoke_memfun_deref, bool (KWin::InputEventFilter::*&)(QMouseEvent*, unsigned int), KWin::InputEventFilter* const&, KWin::MouseEvent*&, int&) (__f=
    @0x7ffe77399740: &virtual table offset 16, __t=@0x55590efeae48: 0x55590f0275e0) at /usr/include/c++/10.2.0/bits/invoke.h:73
#29 0x00007f9898519f97 in std::__invoke<bool (KWin::InputEventFilter::*&)(QMouseEvent*, unsigned int), KWin::InputEventFilter* const&, KWin::MouseEvent*&, int&>(bool (KWin::InputEventFilter::*&)(QMouseEvent*, unsigned int), KWin::InputEventFilter* const&, KWin::MouseEvent*&, int&) (__fn=@0x7ffe77399740: &virtual table offset 16) at /usr/include/c++/10.2.0/bits/invoke.h:95
#30 0x00007f989851997f in std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)>::__call<bool, KWin::InputEventFilter* const&, 0ul, 1ul, 2ul>(std::tuple<KWin::InputEventFilter* const&>&&, std::_Index_tuple<0ul, 1ul, 2ul>) (this=0x7ffe77399740, __args=...) at /usr/include/c++/10.2.0/functional:416
#31 0x00007f9898519572 in std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)>::operator()<KWin::InputEventFilter* const&, bool>(KWin::InputEventFilter* const&) (this=0x7ffe77399740) at /usr/include/c++/10.2.0/functional:499
#32 0x00007f98985191a5 in __gnu_cxx::__ops::_Iter_pred<std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)> >::operator()<KWin::InputEventFilter* const*>(KWin::InputEventFilter* const*) (this=0x7ffe77399740, __it=0x55590efeae48) at /usr/include/c++/10.2.0/bits/predefined_ops.h:316
#33 0x00007f9898517e23 in std::__find_if<KWin::InputEventFilter* const*, __gnu_cxx::__ops::_Iter_pred<std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)> > >(KWin::InputEventFilter* const*, KWin::InputEventFilter* const*, __gnu_cxx::__ops::_Iter_pred<std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)> >, std::random_access_iterator_tag) (__first=0x55590efeae48, __last=0x55590efeae88, __pred=...)
--Type <RET> for more, q to quit, c to continue without paging--
    at /usr/include/c++/10.2.0/bits/stl_algobase.h:1932
#34 0x00007f989851697f in std::__find_if<KWin::InputEventFilter* const*, __gnu_cxx::__ops::_Iter_pred<std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)> > >(KWin::InputEventFilter* const*, KWin::InputEventFilter* const*, __gnu_cxx::__ops::_Iter_pred<std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)> >) (__first=0x55590efeae08, __last=0x55590efeae88, __pred=...) at /usr/include/c++/10.2.0/bits/stl_algobase.h:1977
#35 0x00007f9898515644 in std::find_if<KWin::InputEventFilter* const*, std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)> >(KWin::InputEventFilter* const*, KWin::InputEventFilter* const*, std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)>)   
    (__first=0x55590efeae08, __last=0x55590efeae88, __pred=...) at /usr/include/c++/10.2.0/bits/stl_algo.h:3928
#36 0x00007f9898513f29 in std::none_of<KWin::InputEventFilter* const*, std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)> >(KWin::InputEventFilter* const*, KWin::InputEventFilter* const*, std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)>)   
    (__first=0x55590efeae08, __last=0x55590efeae88, __pred=...) at /usr/include/c++/10.2.0/bits/stl_algo.h:471
#37 0x00007f989851234f in std::any_of<KWin::InputEventFilter* const*, std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)> >(KWin::InputEventFilter* const*, KWin::InputEventFilter* const*, std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)>)    
    (__first=0x55590efeae08, __last=0x55590efeae88, __pred=...) at /usr/include/c++/10.2.0/bits/stl_algo.h:490
#38 0x00007f989850fc97 in KWin::InputRedirection::processFilters<std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)> >(std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)>) (this=0x55590e698e50, function=...)
    at /home/bernie/kde/src/kwin/src/input.h:225
#39 0x00007f9898506321 in KWin::PointerInputRedirection::processMotion(QPointF const&, QSizeF const&, QSizeF const&, unsigned int, unsigned long long, KWin::LibInput::Device*)
    (this=0x55590e65e0c0, pos=..., delta=..., deltaNonAccelerated=..., time=997170, timeUsec=997170680, device=0x55590e7b1c40) at /home/bernie/kde/src/kwin/src/pointer_input.cpp:264
#40 0x00007f9898490a63 in operator()(QSizeF const&, QSizeF const&, uint32_t, quint64, KWin::LibInput::Device*) const
    (__closure=0x55590e6fad80, delta=..., deltaNonAccel=..., time=997170, timeMicroseconds=997170680, device=0x55590e7b1c40) at /home/bernie/kde/src/kwin/src/input.cpp:2327
#41 0x00007f9898497ab5 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1, 2, 3, 4>, QtPrivate::List<const QSizeF&, const QSizeF&, unsigned int, long long unsigned int, KWin::LibInput::Device*>, void, KWin::InputRedirection::setupLibInput()::<lambda(const QSizeF&, const QSizeF&, uint32_t, quint64, KWin::LibInput::Device*)> >::call(struct {...} &, void **)                  
    (f=..., arg=0x7ffe77399d00) at /usr/include/qt/QtCore/qobjectdefs_impl.h:146
#42 0x00007f98984972dd in QtPrivate::Functor<KWin::InputRedirection::setupLibInput()::<lambda(const QSizeF&, const QSizeF&, uint32_t, quint64, KWin::LibInput::Device*)>, 5>::call<QtPrivate::List<QSizeF const&, QSizeF const&, unsigned int, unsigned long long, KWin::LibInput::Device*>, void>(struct {...} &, void *, void **) (f=..., arg=0x7ffe77399d00)
    at /usr/include/qt/QtCore/qobjectdefs_impl.h:256
#43 0x00007f9898496be6 in QtPrivate::QFunctorSlotObject<KWin::InputRedirection::setupLibInput()::<lambda(const QSizeF&, const QSizeF&, uint32_t, quint64, KWin::LibInput::Device*)>, 5, QtPrivate::List<const QSizeF&, const QSizeF&, unsigned int, long long unsigned int, KWin::LibInput::Device*>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *)
--Type <RET> for more, q to quit, c to continue without paging--
    (which=1, this_=0x55590e6fad70, r=0x55590e698e50, a=0x7ffe77399d00, ret=0x0) at /usr/include/qt/QtCore/qobjectdefs_impl.h:443
#44 0x00007f9898d18d86 in  () at /usr/lib/libQt5Core.so.5
#45 0x00007f98983916e3 in KWin::LibInput::Connection::pointerMotion(QSizeF const&, QSizeF const&, unsigned int, unsigned long long, KWin::LibInput::Device*)
    (this=0x55590e74ac80, _t1=..., _t2=..., _t3=997170, _t4=997170680, _t5=0x55590e7b1c40) at /home/bernie/kde/build/kwin/src/kwin_autogen/PCJB6APXE6/moc_connection.cpp:640
#46 0x00007f98984d89c0 in KWin::LibInput::Connection::processEvents() (this=0x55590e74ac80) at /home/bernie/kde/src/kwin/src/libinput/connection.cpp:460
#47 0x00007f9898490977 in operator()() const (__closure=0x55590e6fad60) at /home/bernie/kde/src/kwin/src/input.cpp:2310
#48 0x00007f9898497a18 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KWin::InputRedirection::setupLibInput()::<lambda()> >::call(struct {...} &, void **)
    (f=..., arg=0x7f9884007988) at /usr/include/qt/QtCore/qobjectdefs_impl.h:146
#49 0x00007f98984972b3 in QtPrivate::Functor<KWin::InputRedirection::setupLibInput()::<lambda()>, 0>::call<QtPrivate::List<>, void>(struct {...} &, void *, void **)
    (f=..., arg=0x7f9884007988) at /usr/include/qt/QtCore/qobjectdefs_impl.h:256
#50 0x00007f9898496b5c in QtPrivate::QFunctorSlotObject<KWin::InputRedirection::setupLibInput()::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=1, this_=0x55590e6fad50, r=0x55590e698e50, a=0x7f9884007988, ret=0x0) at /usr/include/qt/QtCore/qobjectdefs_impl.h:443
#51 0x00007f9898d0e532 in QObject::event(QEvent*) () at /usr/lib/libQt5Core.so.5
#52 0x00007f98964b2752 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#53 0x00007f9898ce1a2a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#54 0x00007f9898ce4523 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/libQt5Core.so.5
#55 0x00007f9898d37aec in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#56 0x00007f989142c9be in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /home/bernie/kde/usr/lib/plugins/platforms/KWinQpaPlugin.so
#57 0x00007f9898ce03ac in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#58 0x00007f9898ce8844 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#59 0x000055590db40e76 in main(int, char**) (argc=5, argv=0x7ffe7739a788) at /home/bernie/kde/src/kwin/src/main_wayland.cpp:802
(gdb)
Comment 3 Alois Wohlschlager 2021-03-30 07:49:47 UTC
The kwin_wayland backtrace is missing debug symbols for Qt. Please install these and create a new backtrace.
Comment 4 Bernie Innocenti 2021-04-01 14:43:17 UTC
The Wayland connection broke. Did the Wayland compositor die?

Thread 1 "gwenview" received signal SIGABRT, Aborted.
0x00007ffff44aaef5 in raise () from /usr/lib/libc.so.6
(gdb) bt
#0  0x00007ffff44aaef5 in raise () from /usr/lib/libc.so.6
#1  0x00007ffff4494862 in abort () from /usr/lib/libc.so.6
#2  0x00007ffff4a0cc51 in qt_message_fatal (message=<synthetic pointer>: {static null = {<No data fields>}, d = <optimized out>}, context=
      @0x7fffffffd4b0: {version = 102, line = 0, file = 0x170b52007b128200 <error: Cannot access memory at address 0x170b52007b128200>, function = 0x55555569ce60 "\240Ԯ\360\377\177", category = 0x7ffff09c1d34 <wl_display_get_error+36> "[]D\211\340A\\\303\017\037@"})
    at /home/bernie/kde/src/Qt5/qtbase/src/corelib/global/qlogging.cpp:1914
#3  QMessageLogger::fatal (this=this@entry=0x7fffffffd4f0, msg=msg@entry=0x7ffff0ab2098 "The Wayland connection broke. Did the Wayland compositor die?")
    at /home/bernie/kde/src/Qt5/qtbase/src/corelib/global/qlogging.cpp:893
#4  0x00007ffff0a32da9 in QtWaylandClient::QWaylandDisplay::checkError (this=<optimized out>)
    at /home/bernie/kde/src/Qt5/qtwayland/src/client/qwaylanddisplay.cpp:209
#5  QtWaylandClient::QWaylandDisplay::checkError (this=<optimized out>) at /home/bernie/kde/src/Qt5/qtwayland/src/client/qwaylanddisplay.cpp:204
#6  0x00007ffff0a4185a in QtWaylandClient::QWaylandDisplay::flushRequests (this=0x55555569cd00)
    at /home/bernie/kde/src/Qt5/qtwayland/src/client/qwaylanddisplay.cpp:222
#7  0x00007ffff4c606e0 in doActivate<false> (sender=0x555555673a60, signal_index=3, argv=0x7fffffffd600, argv@entry=0x0)
    at /home/bernie/kde/src/Qt5/qtbase/src/corelib/kernel/qobject.cpp:3898
#8  0x00007ffff4c59a00 in QMetaObject::activate (sender=sender@entry=0x555555673a60, m=m@entry=0x7ffff4ef97c0 <QAbstractEventDispatcher::staticMetaObject>, 
    local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at /home/bernie/kde/src/Qt5/qtbase/src/corelib/kernel/qobject.cpp:3946
#9  0x00007ffff4c26c40 in QAbstractEventDispatcher::aboutToBlock (this=this@entry=0x555555673a60) at .moc/moc_qabstracteventdispatcher.cpp:143
#10 0x00007ffff4c81484 in QEventDispatcherGlib::processEvents (this=0x555555673a60, flags=<optimized out>)
    at /home/bernie/kde/src/Qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:410
#11 0x00007ffff4c28a7b in QEventLoop::exec (this=this@entry=0x7fffffffd720, flags={i = 36}, flags@entry={i = 0})
    at ../../include/QtCore/../../../../../src/Qt5/qtbase/src/corelib/global/qflags.h:69
#12 0x00007ffff4c30d00 in QCoreApplication::exec () at ../../include/QtCore/../../../../../src/Qt5/qtbase/src/corelib/global/qflags.h:121
#13 0x00005555555ccfd2 in main (argc=1, argv=0x7fffffffd928) at /home/bernie/kde/src/gwenview/app/main.cpp:202
(gdb) 
#0  0x00007ffff44aaef5 in raise () from /usr/lib/libc.so.6
#1  0x00007ffff4494862 in abort () from /usr/lib/libc.so.6
#2  0x00007ffff4a0cc51 in qt_message_fatal (message=<synthetic pointer>: {static null = {<No data fields>}, d = <optimized out>}, context=
      @0x7fffffffd4b0: {version = 102, line = 0, file = 0x170b52007b128200 <error: Cannot access memory at address 0x170b52007b128200>, function = 0x55555569ce60 "\240Ԯ\360\377\177", category = 0x7ffff09c1d34 <wl_display_get_error+36> "[]D\211\340A\\\303\017\037@"})
    at /home/bernie/kde/src/Qt5/qtbase/src/corelib/global/qlogging.cpp:1914
#3  QMessageLogger::fatal (this=this@entry=0x7fffffffd4f0, msg=msg@entry=0x7ffff0ab2098 "The Wayland connection broke. Did the Wayland compositor die?")
    at /home/bernie/kde/src/Qt5/qtbase/src/corelib/global/qlogging.cpp:893
#4  0x00007ffff0a32da9 in QtWaylandClient::QWaylandDisplay::checkError (this=<optimized out>)
    at /home/bernie/kde/src/Qt5/qtwayland/src/client/qwaylanddisplay.cpp:209
#5  QtWaylandClient::QWaylandDisplay::checkError (this=<optimized out>) at /home/bernie/kde/src/Qt5/qtwayland/src/client/qwaylanddisplay.cpp:204
#6  0x00007ffff0a4185a in QtWaylandClient::QWaylandDisplay::flushRequests (this=0x55555569cd00)
    at /home/bernie/kde/src/Qt5/qtwayland/src/client/qwaylanddisplay.cpp:222
#7  0x00007ffff4c606e0 in doActivate<false> (sender=0x555555673a60, signal_index=3, argv=0x7fffffffd600, argv@entry=0x0)
    at /home/bernie/kde/src/Qt5/qtbase/src/corelib/kernel/qobject.cpp:3898
#8  0x00007ffff4c59a00 in QMetaObject::activate (sender=sender@entry=0x555555673a60, m=m@entry=0x7ffff4ef97c0 <QAbstractEventDispatcher::staticMetaObject>, 
    local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at /home/bernie/kde/src/Qt5/qtbase/src/corelib/kernel/qobject.cpp:3946
#9  0x00007ffff4c26c40 in QAbstractEventDispatcher::aboutToBlock (this=this@entry=0x555555673a60) at .moc/moc_qabstracteventdispatcher.cpp:143
#10 0x00007ffff4c81484 in QEventDispatcherGlib::processEvents (this=0x555555673a60, flags=<optimized out>)
    at /home/bernie/kde/src/Qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:410
#11 0x00007ffff4c28a7b in QEventLoop::exec (this=this@entry=0x7fffffffd720, flags={i = 36}, flags@entry={i = 0})
    at ../../include/QtCore/../../../../../src/Qt5/qtbase/src/corelib/global/qflags.h:69
#12 0x00007ffff4c30d00 in QCoreApplication::exec () at ../../include/QtCore/../../../../../src/Qt5/qtbase/src/corelib/global/qflags.h:121
#13 0x00005555555ccfd2 in main (argc=1, argv=0x7fffffffd928) at /home/bernie/kde/src/gwenview/app/main.cpp:202
(gdb) 
#0  0x00007ffff44aaef5 in raise () from /usr/lib/libc.so.6
#1  0x00007ffff4494862 in abort () from /usr/lib/libc.so.6
#2  0x00007ffff4a0cc51 in qt_message_fatal (message=<synthetic pointer>: {static null = {<No data fields>}, d = <optimized out>}, context=
      @0x7fffffffd4b0: {version = 102, line = 0, file = 0x170b52007b128200 <error: Cannot access memory at address 0x170b52007b128200>, function = 0x55555569ce60 "\240Ԯ\360\377\177", category = 0x7ffff09c1d34 <wl_display_get_error+36> "[]D\211\340A\\\303\017\037@"})
    at /home/bernie/kde/src/Qt5/qtbase/src/corelib/global/qlogging.cpp:1914
#3  QMessageLogger::fatal (this=this@entry=0x7fffffffd4f0, msg=msg@entry=0x7ffff0ab2098 "The Wayland connection broke. Did the Wayland compositor die?")
    at /home/bernie/kde/src/Qt5/qtbase/src/corelib/global/qlogging.cpp:893
#4  0x00007ffff0a32da9 in QtWaylandClient::QWaylandDisplay::checkError (this=<optimized out>)
    at /home/bernie/kde/src/Qt5/qtwayland/src/client/qwaylanddisplay.cpp:209
#5  QtWaylandClient::QWaylandDisplay::checkError (this=<optimized out>) at /home/bernie/kde/src/Qt5/qtwayland/src/client/qwaylanddisplay.cpp:204
#6  0x00007ffff0a4185a in QtWaylandClient::QWaylandDisplay::flushRequests (this=0x55555569cd00)
    at /home/bernie/kde/src/Qt5/qtwayland/src/client/qwaylanddisplay.cpp:222
#7  0x00007ffff4c606e0 in doActivate<false> (sender=0x555555673a60, signal_index=3, argv=0x7fffffffd600, argv@entry=0x0)
    at /home/bernie/kde/src/Qt5/qtbase/src/corelib/kernel/qobject.cpp:3898
#8  0x00007ffff4c59a00 in QMetaObject::activate (sender=sender@entry=0x555555673a60, m=m@entry=0x7ffff4ef97c0 <QAbstractEventDispatcher::staticMetaObject>, 
    local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at /home/bernie/kde/src/Qt5/qtbase/src/corelib/kernel/qobject.cpp:3946
#9  0x00007ffff4c26c40 in QAbstractEventDispatcher::aboutToBlock (this=this@entry=0x555555673a60) at .moc/moc_qabstracteventdispatcher.cpp:143
#10 0x00007ffff4c81484 in QEventDispatcherGlib::processEvents (this=0x555555673a60, flags=<optimized out>)
    at /home/bernie/kde/src/Qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:410
#11 0x00007ffff4c28a7b in QEventLoop::exec (this=this@entry=0x7fffffffd720, flags={i = 36}, flags@entry={i = 0})
    at ../../include/QtCore/../../../../../src/Qt5/qtbase/src/corelib/global/qflags.h:69
#12 0x00007ffff4c30d00 in QCoreApplication::exec () at ../../include/QtCore/../../../../../src/Qt5/qtbase/src/corelib/global/qflags.h:121
#13 0x00005555555ccfd2 in main (argc=1, argv=0x7fffffffd928) at /home/bernie/kde/src/gwenview/app/main.cpp:202
(gdb) 
#0  0x00007ffff44aaef5 in raise () from /usr/lib/libc.so.6
#1  0x00007ffff4494862 in abort () from /usr/lib/libc.so.6
#2  0x00007ffff4a0cc51 in qt_message_fatal (message=<synthetic pointer>: {static null = {<No data fields>}, d = <optimized out>}, context=
      @0x7fffffffd4b0: {version = 102, line = 0, file = 0x170b52007b128200 <error: Cannot access memory at address 0x170b52007b128200>, function = 0x55555569ce60 "\240Ԯ\360\377\177", category = 0x7ffff09c1d34 <wl_display_get_error+36> "[]D\211\340A\\\303\017\037@"})
    at /home/bernie/kde/src/Qt5/qtbase/src/corelib/global/qlogging.cpp:1914
#3  QMessageLogger::fatal (this=this@entry=0x7fffffffd4f0, msg=msg@entry=0x7ffff0ab2098 "The Wayland connection broke. Did the Wayland compositor die?")
    at /home/bernie/kde/src/Qt5/qtbase/src/corelib/global/qlogging.cpp:893
#4  0x00007ffff0a32da9 in QtWaylandClient::QWaylandDisplay::checkError (this=<optimized out>)
    at /home/bernie/kde/src/Qt5/qtwayland/src/client/qwaylanddisplay.cpp:209
#5  QtWaylandClient::QWaylandDisplay::checkError (this=<optimized out>) at /home/bernie/kde/src/Qt5/qtwayland/src/client/qwaylanddisplay.cpp:204
#6  0x00007ffff0a4185a in QtWaylandClient::QWaylandDisplay::flushRequests (this=0x55555569cd00)
    at /home/bernie/kde/src/Qt5/qtwayland/src/client/qwaylanddisplay.cpp:222
#7  0x00007ffff4c606e0 in doActivate<false> (sender=0x555555673a60, signal_index=3, argv=0x7fffffffd600, argv@entry=0x0)
    at /home/bernie/kde/src/Qt5/qtbase/src/corelib/kernel/qobject.cpp:3898
#8  0x00007ffff4c59a00 in QMetaObject::activate (sender=sender@entry=0x555555673a60, m=m@entry=0x7ffff4ef97c0 <QAbstractEventDispatcher::staticMetaObject>, 
    local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at /home/bernie/kde/src/Qt5/qtbase/src/corelib/kernel/qobject.cpp:3946
#9  0x00007ffff4c26c40 in QAbstractEventDispatcher::aboutToBlock (this=this@entry=0x555555673a60) at .moc/moc_qabstracteventdispatcher.cpp:143
#10 0x00007ffff4c81484 in QEventDispatcherGlib::processEvents (this=0x555555673a60, flags=<optimized out>)
    at /home/bernie/kde/src/Qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:410
#11 0x00007ffff4c28a7b in QEventLoop::exec (this=this@entry=0x7fffffffd720, flags={i = 36}, flags@entry={i = 0})
    at ../../include/QtCore/../../../../../src/Qt5/qtbase/src/corelib/global/qflags.h:69
#12 0x00007ffff4c30d00 in QCoreApplication::exec () at ../../include/QtCore/../../../../../src/Qt5/qtbase/src/corelib/global/qflags.h:121
#13 0x00005555555ccfd2 in main (argc=1, argv=0x7fffffffd928) at /home/bernie/kde/src/gwenview/app/main.cpp:202
(gdb) q
Comment 5 Nate Graham 2021-04-01 23:57:45 UTC
Seems relevant:

#3  0x00007f9897b14a79 in QSGRenderLoop::handleContextCreationFailure(QQuickWindow*) () at /usr/lib/libQt5Quick.so.5

When an app crashes because kwin_wayland crashes, those app crash logs can be ignored. "The Wayland connection broke. Did the Wayland compositor die?" means that yes indeed, the wayland connection broke. This is ultimately caused by a Qt bug: https://bugreports.qt.io/browse/QTBUG-85631
Comment 6 Leszek Lesner 2021-06-16 07:55:50 UTC
I also had the issue and got the tip to remove "KWinQpaPlugin.so" from the lib folder if it is still there. 
After that Wayland session runs rock solid again for me.
Comment 7 Zamundaaa 2023-01-17 13:51:33 UTC
KWinQpaPlugin.so needing to be deleted was due to some changes in KWin, closing.