Bug 434453 - kwin_wayland crashes when tiling window
Summary: kwin_wayland crashes when tiling window
Status: RESOLVED WORKSFORME
Alias: None
Product: kwin
Classification: Plasma
Component: wayland-generic (show other bugs)
Version: git master
Platform: Other Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: wayland
Depends on:
Blocks:
 
Reported: 2021-03-15 18:13 UTC by Nicolas Fella
Modified: 2021-03-29 21:59 UTC (History)
2 users (show)

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


Attachments
Video (424.32 KB, video/x-matroska)
2021-03-21 00:45 UTC, Nicolas Fella
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Nicolas Fella 2021-03-15 18:13:01 UTC
STEPS TO REPRODUCE
1. Open Firefox
2. Drag window and move it against the left/right screen edge
3. repeat a couple of times

OBSERVED RESULT
kwin_wayland crashes

SOFTWARE/OS VERSIONS
KDE stuff from master
Qt Version: From 5.15 branch

* thread #1, name = 'kwin_wayland', stop reason = signal SIGSEGV: invalid address (fault address: 0x51ed7fd5)
  * frame #0: 0x00007fef81d21707 libkwin.so.5`QtPrivate::QSlotObject<void (KWin::AbstractClient::*)(), QtPrivate::List<>, void>::impl(which=0, this_=0x000055735236cfb0, r=0x0000557351ed7c80, a=0x00007ffce16cbb50, ret=0xdd9d4616b854f300) at qobjectdefs_impl.h:421:53
    frame #1: 0x00007fef81ce9684 libkwin.so.5`KWin::Toplevel::bufferGeometryChanged(this=0x0000557351ed7c80, _t1=0x0000557351ed7c80, _t2=0x00007ffce16cbba0) at moc_toplevel.cpp:892:26
    frame #2: 0x00007fef81df81bc libkwin.so.5`KWin::InternalClient::commitGeometry(this=0x0000557351ed7c80, rect=0x00007ffce16cbd00) at internal_client.cpp:482:35
    frame #3: 0x00007fef81df6a88 libkwin.so.5`KWin::InternalClient::InternalClient(this=0x0000557351ed7c80, window=0x000055735236cfb0) at internal_client.cpp:57:19
    frame #4: 0x00007fef7ae817d6 KWinQpaPlugin.so`KWin::QPA::Window::map(this=0x00007fef70008410) at window.cpp:174:43
    frame #5: 0x00007fef7ae80f29 KWinQpaPlugin.so`KWin::QPA::Window::setVisible(this=0x00007fef70008410, visible=true) at window.cpp:53:12
    frame #6: 0x00007fef82a31d73 libQt5Gui.so.5`QWindowPrivate::setVisible(this=0x00005573522a49e0, visible=<unavailable>) at qwindow.cpp:408:35
    frame #7: 0x00007fef81065e0f libQt5Qml.so.5`GenericBinding<1>::write(QV4::Value const&, bool, QFlags<QQmlPropertyData::WriteFlag>) at qqmlpropertydata_p.h:375:37
    frame #8: 0x00007fef81065df0 libQt5Qml.so.5`GenericBinding<1>::write(QV4::Value const&, bool, QFlags<QQmlPropertyData::WriteFlag>) at qqmlbinding.cpp:342
    frame #9: 0x00007fef81065df0 libQt5Qml.so.5`GenericBinding<1>::write(this=0x0000557351ad6740, result=0x00007fef611454c8, isUndefined=<unavailable>, flags=(i = 3)) at qqmlbinding.cpp:305
    frame #10: 0x00007fef810667fe libQt5Qml.so.5`QQmlNonbindingBinding::doUpdate(this=0x0000557351ad6740, watcher=0x00007ffce16cbf70, flags=(i = 3), scope=0x00007ffce16cbf50) at qqmlbinding.cpp:258:27
    frame #11: 0x00007fef810644b4 libQt5Qml.so.5`QQmlBinding::update(this=0x0000557351ad6740, flags=<unavailable>) at qqmlbinding.cpp:194:13
    frame #12: 0x00007fef810414bd libQt5Qml.so.5`QQmlNotifier::emitNotify(endpoint=<unavailable>, a=0x0000000000000000) at qqmlnotifier.cpp:104:60
    frame #13: 0x00007fef8264d3a5 libQt5Core.so.5`void doActivate<false>(sender=0x00005573511df350, signal_index=3, argv=0x0000000000000000) at qobject.cpp:3778:48
    frame #14: 0x00007fef81cd73f7 libkwin.so.5`KWin::Outline::activeChanged(this=0x00005573511df350) at moc_outline.cpp:226:26
    frame #15: 0x00007fef81e3c693 libkwin.so.5`KWin::Outline::show(this=0x00005573511df350) at outline.cpp:54:23
    frame #16: 0x00007fef81e3c7a2 libkwin.so.5`KWin::Outline::show(this=0x00005573511df350, outlineGeometry=0x00007ffce16cd9f0, visualParentGeometry=0x00007ffce16cda00) at outline.cpp:79:9
    frame #17: 0x00007fef81d0e2b6 libkwin.so.5`KWin::AbstractClient::setElectricBorderMaximizing(this=0x0000557352379570, maximizing=true) at abstract_client.cpp:3015:24
    frame #18: 0x00007fef81d0aaf2 libkwin.so.5`KWin::AbstractClient::checkQuickTilingMaximizationZones(this=0x0000557352379570, xroot=1919, yroot=405) at abstract_client.cpp:2213:40
    frame #19: 0x00007fef81d04ba0 libkwin.so.5`KWin::AbstractClient::handleMoveResize(this=0x0000557352379570, local=0x00007ffce16cdb98, global=0x00007ffce16cdba0) at abstract_client.cpp:1130:46
    frame #20: 0x00007fef81d04746 libkwin.so.5`KWin::AbstractClient::updateMoveResize(this=0x0000557352379570, currentGlobalCursor=0x00007ffce16cdbf0) at abstract_client.cpp:1112:21
    frame #21: 0x00007fef81dd8a66 libkwin.so.5`KWin::MoveResizeFilter::pointerEvent(this=0x000055735122a290, event=0x00007ffce16ce020, nativeButton=0) at input.cpp:512:32
    frame #22: 0x00007fef81e5e76e libkwin.so.5`bool std::__invoke_impl<bool, bool (KWin::InputEventFilter::*&)(QMouseEvent*, unsigned int), KWin::InputEventFilter* const&, KWin::MouseEvent*&, int&>((null)=__invoke_memfun_deref @ 0x00007ffce16cdc70, __f=0x00007ffce16cddb0, __t=0x00005573512ca2b8, (null)=0x00007ffce16cddc8, (null)=0x00007ffce16cddc0)(QMouseEvent*, unsigned int), KWin::InputEventFilter* const&, KWin::MouseEvent*&, int&) at invoke.h:73:46
    frame #23: 0x00007fef81e5e2eb libkwin.so.5`std::__invoke_result<bool (KWin::InputEventFilter::*&)(QMouseEvent*, unsigned int), KWin::InputEventFilter* const&, KWin::MouseEvent*&, int&>::type std::__invoke<bool (__fn=0x00007ffce16cddb0, (null)=0x00005573512ca2b8, (null)=0x00007ffce16cddc8, (null)=0x00007ffce16cddc0)(QMouseEvent*, unsigned int), KWin::InputEventFilter* const&, KWin::MouseEvent*&, int&>(bool (KWin::InputEventFilter::*&)(QMouseEvent*, unsigned int), KWin::InputEventFilter* const&, KWin::MouseEvent*&, int&) at invoke.h:95:40
    frame #24: 0x00007fef81e5dcd3 libkwin.so.5`bool std::_Bind<bool (KWin::InputEventFilter::* (std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)>::__call<bool, KWin::InputEventFilter* const&, 0ul, 1ul, 2ul>(this=0x00007ffce16cddb0, __args=0x00007ffce16cdd10, (null)=_Index_tuple<0, 1, 2> @ 0x00007ffce16cdd00) at functional:416:24
    frame #25: 0x00007fef81e5d8c6 libkwin.so.5`bool std::_Bind<bool (KWin::InputEventFilter::* (std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)>::operator(this=0x00007ffce16cddb0, (null)=0x00005573512ca2b8)<KWin::InputEventFilter* const&, bool>(KWin::InputEventFilter* const&) at functional:499:32
    frame #26: 0x00007fef81e5d4f9 libkwin.so.5`bool __gnu_cxx::__ops::_Iter_pred<std::_Bind<bool (KWin::InputEventFilter::* (std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)> >::operator(this=0x00007ffce16cddb0, __it=0x00005573512ca2b8)<KWin::InputEventFilter* const*>(KWin::InputEventFilter* const*) at predefined_ops.h:316:23
    frame #27: 0x00007fef81e5c177 libkwin.so.5`KWin::InputEventFilter* const* 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)> > >(__first=0x00005573512ca2b8, __last=0x00005573512ca2f8, __pred=_Iter_pred<std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)> > @ 0x00007ffce16cddb0, (null)=random_access_iterator_tag @ 0x00007ffce16cdd90))(QMouseEvent*, unsigned int)> >, std::random_access_iterator_tag) at stl_algobase.h:1932:14
    frame #28: 0x00007fef81e5acd3 libkwin.so.5`KWin::InputEventFilter* const* 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)> > >(__first=0x00005573512ca278, __last=0x00005573512ca2f8, __pred=_Iter_pred<std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)> > @ 0x00007ffce16cde30))(QMouseEvent*, unsigned int)> >) at stl_algobase.h:1977:23
    frame #29: 0x00007fef81e59998 libkwin.so.5`KWin::InputEventFilter* const* std::find_if<KWin::InputEventFilter* const*, std::_Bind<bool (KWin::InputEventFilter::* (std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)> >(__first=0x00005573512ca278, __last=0x00005573512ca2f8, __pred=_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)> @ 0x00007ffce16cde90))(QMouseEvent*, unsigned int)>) at stl_algo.h:3928:28
    frame #30: 0x00007fef81e5827d libkwin.so.5`bool std::none_of<KWin::InputEventFilter* const*, std::_Bind<bool (KWin::InputEventFilter::* (std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)> >(__first=0x00005573512ca278, __last=0x00005573512ca2f8, __pred=_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)> @ 0x00007ffce16cdef0))(QMouseEvent*, unsigned int)>) at stl_algo.h:471:47
    frame #31: 0x00007fef81e566a3 libkwin.so.5`bool std::any_of<KWin::InputEventFilter* const*, std::_Bind<bool (KWin::InputEventFilter::* (std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)> >(__first=0x00005573512ca278, __last=0x00005573512ca2f8, __pred=_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)> @ 0x00007ffce16cdf40))(QMouseEvent*, unsigned int)>) at stl_algo.h:490:27
    frame #32: 0x00007fef81e53feb libkwin.so.5`void KWin::InputRedirection::processFilters<std::_Bind<bool (KWin::InputEventFilter::* (std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)> >(this=0x00005573508a8920, function=_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)> @ 0x00007ffce16ce000))(QMouseEvent*, unsigned int)>) at input.h:225:20
    frame #33: 0x00007fef81e4a675 libkwin.so.5`KWin::PointerInputRedirection::processMotion(this=0x000055735089da50, pos=0x00007ffce16ce170, delta=0x00007ffce16ce4f0, deltaNonAccelerated=0x00007ffce16ce500, time=840861, timeUsec=840861956, device=0x00005573509c7250) at pointer_input.cpp:264:28
    frame #34: 0x00007fef81dcfc11 libkwin.so.5`operator(__closure=0x0000557350a08880, delta=0x00007ffce16ce4f0, deltaNonAccel=0x00007ffce16ce500, time=840861, timeMicroseconds=840861956, device=0x00005573509c7250) at input.cpp:2305:41
    frame #35: 0x00007fef81dd6da0 libkwin.so.5`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(f=0x0000557350a08880, arg=0x00007ffce16ce370) &, void **) at qobjectdefs_impl.h:146:14
    frame #36: 0x00007fef81dd655d libkwin.so.5`QtPrivate::Functor<KWin::InputRedirection::setupLibInput()::<lambda(const QSizeF&, const QSizeF&, uint32_t, quint64, KWin::LibInput::Device*)>, 5>::call<QtPrivate::List<const QSizeF&, const QSizeF&, unsigned int, long long unsigned int, KWin::LibInput::Device*>, void>(f=0x0000557350a08880, (null)=0x00005573508a8920, arg=0x00007ffce16ce370) &, void *, void **) at qobjectdefs_impl.h:256:83
    frame #37: 0x00007fef81dd5e3c libkwin.so.5`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(which=1, this_=0x0000557350a08870, r=0x00005573508a8920, a=0x00007ffce16ce370, ret=0x0000000000000000) at qobjectdefs_impl.h:443:49
    frame #38: 0x00007fef8264d816 libQt5Core.so.5`void doActivate<false>(QObject*, int, void**) [inlined] QtPrivate::QSlotObjectBase::call(a=<unavailable>, r=<unavailable>, this=<unavailable>) at qobjectdefs_impl.h:398:57
    frame #39: 0x00007fef8264d804 libQt5Core.so.5`void doActivate<false>(sender=0x00007fef74001880, signal_index=6, argv=0x00007ffce16ce370) at qobject.cpp:3886
    frame #40: 0x00007fef81ccf783 libkwin.so.5`KWin::LibInput::Connection::pointerMotion(this=0x00007fef74001880, _t1=0x00007ffce16ce4f0, _t2=0x00007ffce16ce500, _t3=840861, _t4=840861956, _t5=0x00005573509c7250) at moc_connection.cpp:640:26
    frame #41: 0x00007fef81e1775e libkwin.so.5`KWin::LibInput::Connection::processEvents(this=0x00007fef74001880) at connection.cpp:462:35
    frame #42: 0x00007fef81dcfb25 libkwin.so.5`operator(__closure=0x0000557350a04ee0) at input.cpp:2288:42
    frame #43: 0x00007fef81dd6d03 libkwin.so.5`QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KWin::InputRedirection::setupLibInput()::<lambda()> >::call(f=0x0000557350a04ee0, arg=0x00007fef70007038) &, void **) at qobjectdefs_impl.h:146:14
    frame #44: 0x00007fef81dd6533 libkwin.so.5`QtPrivate::Functor<KWin::InputRedirection::setupLibInput()::<lambda()>, 0>::call<QtPrivate::List<>, void>(f=0x0000557350a04ee0, (null)=0x00005573508a8920, arg=0x00007fef70007038) &, void *, void **) at qobjectdefs_impl.h:256:83
    frame #45: 0x00007fef81dd5db2 libkwin.so.5`QtPrivate::QFunctorSlotObject<KWin::InputRedirection::setupLibInput()::<lambda()>, 0, QtPrivate::List<>, void>::impl(which=1, this_=0x0000557350a04ed0, r=0x00005573508a8920, a=0x00007fef70007038, ret=0x0000000000000000) at qobjectdefs_impl.h:443:49
    frame #46: 0x00007fef82643261 libQt5Core.so.5`QObject::event(QEvent*) at qobject.cpp:1314:31
    frame #47: 0x00007fef7fdfa14f libQt5Widgets.so.5`QApplicationPrivate::notify_helper(this=<unavailable>, receiver=0x00005573508a8920, e=0x00007fef70006ff0) at qapplication.cpp:3632:31
    frame #48: 0x00007fef8261726a libQt5Core.so.5`QCoreApplication::notifyInternal2(QObject*, QEvent*) at qcoreapplication.cpp:1064:24
    frame #49: 0x00007fef82619ca1 libQt5Core.so.5`QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) at qcoreapplication.cpp:1821:36
    frame #50: 0x00007fef8266baea libQt5Core.so.5`QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) at qeventdispatcher_unix.cpp:468:46
    frame #51: 0x00007fef7aeaaadd KWinQpaPlugin.so`QUnixEventDispatcherQPA::processEvents(this=<unavailable>, flags=(i = 36)) at qunixeventdispatcher.cpp:63:67
    frame #52: 0x00007fef82615c1b libQt5Core.so.5`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) at qeventloop.cpp:232:22
    frame #53: 0x00007fef8261dea0 libQt5Core.so.5`QCoreApplication::exec() at qcoreapplication.cpp:1375:36
    frame #54: 0x000055734f2bd3ce kwin_wayland`main(argc=5, argv=0x00007ffce16cede8) at main_wayland.cpp:805:18
    frame #55: 0x00007fef7eee3b25 libc.so.6`__libc_start_main + 213
    frame #56: 0x000055734f26e4ae kwin_wayland`_start + 46
Comment 1 David Edmundson 2021-03-20 23:48:26 UTC
Trace doesn't really make sense.

We're still inside the InternalClient constructor, a crash whilst emitting our own signal implies we've somehow deleted "this" from inside here. 

I can't reproduce, Nico could you try nested and with valgrind? 

Also a clean build
Comment 2 Nicolas Fella 2021-03-21 00:27:56 UTC
I can reproduce it with kwin_wayland --exit-with-session "konsole -platform wayland"

The weird thing is that I've seen multiple different backtraces for the seemingly same crash. This one seems to appear most often:

#0  0x00007ffff3d61ef5 in raise () at /usr/lib/libc.so.6
#1  0x00007ffff3d4b862 in abort () at /usr/lib/libc.so.6
#2  0x00007ffff3da3f38 in __libc_message () at /usr/lib/libc.so.6
#3  0x00007ffff3dabbea in  () at /usr/lib/libc.so.6
#4  0x00007ffff3dacae6 in unlink_chunk.constprop () at /usr/lib/libc.so.6
#5  0x00007ffff3dacc75 in malloc_consolidate () at /usr/lib/libc.so.6
#6  0x00007ffff3daeb03 in _int_malloc () at /usr/lib/libc.so.6
#7  0x00007ffff3db07a1 in malloc () at /usr/lib/libc.so.6
#8  0x00007ffff72ab9d1 in QArrayData::allocate(unsigned long, unsigned long, unsigned long, QFlags<QArrayData::AllocationOption>)
    (objectSize=<optimized out>, alignment=8, capacity=19, options=...) at tools/qarraydata.cpp:218
#9  0x00007ffff6cefcdc in QTypedArrayData<KWin::WindowQuad>::allocate(unsigned long, QFlags<QArrayData::AllocationOption>) (capacity=10, options=...)
    at /home/nico/kde/usr/include/QtCore/qarraydata.h:224
#10 0x00007ffff6cf089f in QVector<KWin::WindowQuad>::realloc(int, QFlags<QArrayData::AllocationOption>) (this=0x55555682fb10, aalloc=10, options=...)
    at /home/nico/kde/usr/include/QtCore/qvector.h:699
#11 0x00007ffff6cede89 in QVector<KWin::WindowQuad>::operator+=(QVector<KWin::WindowQuad> const&) (this=0x55555682fb10, l=...) at /home/nico/kde/usr/include/QtCore/qvector.h:978
#12 0x00007ffff6cee095 in QVector<KWin::WindowQuad>::operator<<(QVector<KWin::WindowQuad> const&) (this=0x55555682fb10, l=...) at /home/nico/kde/usr/include/QtCore/qvector.h:295
#13 0x00007ffff6ce77ab in KWin::Scene::Window::buildQuads(bool) const (this=0x5555556ef210, force=false) at /home/nico/kde/src/kwin/src/scene.cpp:1011
#14 0x00007ffff6ce36c6 in KWin::Scene::paintSimpleScreen(int, QRegion const&) (this=0x555555a4e570, orig_mask=8, region=...) at /home/nico/kde/src/kwin/src/scene.cpp:342
#15 0x00007fffe7b38197 in KWin::SceneOpenGL2::paintSimpleScreen(int, QRegion const&) (this=0x555555a4e570, mask=8, region=...)
    at /home/nico/kde/src/kwin/src/plugins/scenes/opengl/scene_opengl.cpp:1032
#16 0x00007ffff6ce2b9c in KWin::Scene::finalPaintScreen(int, QRegion const&, KWin::ScreenPaintData&) (this=0x555555a4e570, mask=8, region=..., data=...)
    at /home/nico/kde/src/kwin/src/scene.cpp:224
#17 0x00007ffff6bfe9f2 in KWin::EffectsHandlerImpl::paintScreen(int, QRegion const&, KWin::ScreenPaintData&) (this=0x5555560edf10, mask=8, region=..., data=...)
    at /home/nico/kde/src/kwin/src/effects.cpp:390
#18 0x00007ffff683cf08 in KWin::Effect::paintScreen(int, QRegion const&, KWin::ScreenPaintData&) (this=0x555556342110, mask=8, region=..., data=...)
    at /home/nico/kde/src/kwin/src/libkwineffects/kwineffects.cpp:570
#19 0x00007ffff6bfe9be in KWin::EffectsHandlerImpl::paintScreen(int, QRegion const&, KWin::ScreenPaintData&) (this=0x5555560edf10, mask=8, region=..., data=...)
    at /home/nico/kde/src/kwin/src/effects.cpp:387
#20 0x00007ffff683cf08 in KWin::Effect::paintScreen(int, QRegion const&, KWin::ScreenPaintData&) (this=0x55555613d270, mask=8, region=..., data=...)
    at /home/nico/kde/src/kwin/src/libkwineffects/kwineffects.cpp:570
#21 0x00007ffff6bfe9be in KWin::EffectsHandlerImpl::paintScreen(int, QRegion const&, KWin::ScreenPaintData&) (this=0x5555560edf10, mask=8, region=..., data=...)
    at /home/nico/kde/src/kwin/src/effects.cpp:387
#22 0x00007ffff683cf08 in KWin::Effect::paintScreen(int, QRegion const&, KWin::ScreenPaintData&) (this=0x555556478000, mask=8, region=..., data=...)
    at /home/nico/kde/src/kwin/src/libkwineffects/kwineffects.cpp:570
#23 0x00007ffff6bfe9be in KWin::EffectsHandlerImpl::paintScreen(int, QRegion const&, KWin::ScreenPaintData&) (this=0x5555560edf10, mask=8, region=..., data=...)
    at /home/nico/kde/src/kwin/src/effects.cpp:387
#24 0x00007ffff6ce2901 in KWin::Scene::paintScreen(int*, QRegion const&, QRegion const&, QRegion*, QRegion*, KWin::RenderLoop*, QMatrix4x4 const&)
    (this=0x555555a4e570, mask=0x7fffffffccf4, damage=..., repaint=..., updateRegion=0x7fffffffcd00, validRegion=0x7fffffffcd08, renderLoop=0x5555556b9080, projection=...)
    at /home/nico/kde/src/kwin/src/scene.cpp:196
#25 0x00007fffe7b3623e in KWin::SceneOpenGL::paint(int, QRegion const&, QList<KWin::Toplevel*> const&, KWin::RenderLoop*)
    (this=0x555555a4e570, screenId=0, damage=..., toplevels=..., renderLoop=0x5555556b9080) at /home/nico/kde/src/kwin/src/plugins/scenes/opengl/scene_opengl.cpp:681
#26 0x00007ffff6ba3e55 in KWin::Compositor::handleFrameRequested(KWin::RenderLoop*) (this=0x5555557d7f70, renderLoop=0x5555556b9080) at /home/nico/kde/src/kwin/src/composite.cpp:665
#27 0x00007ffff6babeed in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<KWin::RenderLoop*>, void, void (KWin::Compositor::*)(KWin::RenderLoop*)>::call(void (KWin::Compositor::*)(KWin::RenderLoop*), KWin::Compositor*, void**) (f=&virtual table offset 128, o=0x5555557d7f70, arg=0x7fffffffd0a0) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:152
Comment 3 Nicolas Fella 2021-03-21 00:28:30 UTC
The others are:

#0  0x00007ffff3d61ef5 in raise () at /usr/lib/libc.so.6
#1  0x00007ffff3d4b862 in abort () at /usr/lib/libc.so.6
#2  0x00007ffff3da3f38 in __libc_message () at /usr/lib/libc.so.6
#3  0x00007ffff3dabbea in  () at /usr/lib/libc.so.6
#4  0x00007ffff3dacae6 in unlink_chunk.constprop () at /usr/lib/libc.so.6
#5  0x00007ffff3dad33b in _int_free () at /usr/lib/libc.so.6
#6  0x00007ffff3db0ca8 in free () at /usr/lib/libc.so.6
#7  0x00007fffe65a0668 in  () at /usr/lib/dri/iris_dri.so
#8  0x00007fffe64f01eb in  () at /usr/lib/dri/iris_dri.so
#9  0x00007fffe64f088b in  () at /usr/lib/dri/iris_dri.so
#10 0x00007fffe64f0e78 in  () at /usr/lib/dri/iris_dri.so
#11 0x00007fffe64f117a in  () at /usr/lib/dri/iris_dri.so
#12 0x00007ffff67e1b76 in KWin::GLTexture::clear() (this=0x5555566b5b80) at /home/nico/kde/src/kwin/src/libkwineffects/kwingltexture.cpp:533
#13 0x00007fffe7b44f9a in KWin::SceneOpenGLDecorationRenderer::resizeTexture() (this=0x5555565888c0) at /home/nico/kde/src/kwin/src/plugins/scenes/opengl/scene_opengl.cpp:2732
#14 0x00007fffe7b44912 in KWin::SceneOpenGLDecorationRenderer::render() (this=0x5555565888c0) at /home/nico/kde/src/kwin/src/plugins/scenes/opengl/scene_opengl.cpp:2623
#15 0x00007fffe7b3916b in KWin::OpenGLWindow::getDecorationTexture() const (this=0x555556077530) at /home/nico/kde/src/kwin/src/plugins/scenes/opengl/scene_opengl.cpp:1212
#16 0x00007fffe7b39723 in KWin::OpenGLWindow::initializeRenderContext(KWin::OpenGLWindow::RenderContext&, KWin::WindowPaintData const&) (this=0x555556077530, context=..., data=...)
    at /home/nico/kde/src/kwin/src/plugins/scenes/opengl/scene_opengl.cpp:1313
#17 0x00007fffe7b3a531 in KWin::OpenGLWindow::performPaint(int, QRegion const&, KWin::WindowPaintData const&) (this=0x555556077530, mask=10, region=..., _data=...)
    at /home/nico/kde/src/kwin/src/plugins/scenes/opengl/scene_opengl.cpp:1470
#18 0x00007fffe7b3862b in KWin::SceneOpenGL2::performPaintWindow(KWin::EffectWindowImpl*, int, QRegion const&, KWin::WindowPaintData&)
    (this=0x555555a4f3b0, w=0x555556590290, mask=10, region=..., data=...) at /home/nico/kde/src/kwin/src/plugins/scenes/opengl/scene_opengl.cpp:1085
#19 0x00007fffe7b3849c in KWin::SceneOpenGL2::finalDrawWindow(KWin::EffectWindowImpl*, int, QRegion const&, KWin::WindowPaintData&)
    (this=0x555555a4f3b0, w=0x555556590290, mask=10, region=..., data=...) at /home/nico/kde/src/kwin/src/plugins/scenes/opengl/scene_opengl.cpp:1067
#20 0x00007ffff6bfefd0 in KWin::EffectsHandlerImpl::drawWindow(KWin::EffectWindow*, int, QRegion const&, KWin::WindowPaintData&)
    (this=0x555556149c40, w=0x555556590290, mask=10, region=..., data=...) at /home/nico/kde/src/kwin/src/effects.cpp:470
#21 0x00007ffff68a5956 in KWin::BlurEffect::drawWindow(KWin::EffectWindow*, int, QRegion const&, KWin::WindowPaintData&)
    (this=0x5555560712b0, w=0x555556590290, mask=10, region=..., data=...) at /home/nico/kde/src/kwin/src/effects/blur/blur.cpp:593
#22 0x00007ffff6bfef80 in KWin::EffectsHandlerImpl::drawWindow(KWin::EffectWindow*, int, QRegion const&, KWin::WindowPaintData&)
    (this=0x555556149c40, w=0x555556590290, mask=10, region=..., data=...) at /home/nico/kde/src/kwin/src/effects.cpp:467
#23 0x00007ffff683d11d in KWin::Effect::drawWindow(KWin::EffectWindow*, int, QRegion const&, KWin::WindowPaintData&)
    (this=0x555556471a20, w=0x555556590290, mask=10, region=..., data=...) at /home/nico/kde/src/kwin/src/libkwineffects/kwineffects.cpp:615
#24 0x00007ffff6bfef80 in KWin::EffectsHandlerImpl::drawWindow(KWin::EffectWindow*, int, QRegion const&, KWin::WindowPaintData&)
    (this=0x555556149c40, w=0x555556590290, mask=10, region=..., data=...) at /home/nico/kde/src/kwin/src/effects.cpp:467
#25 0x00007ffff6ce5929 in KWin::Scene::finalPaintWindow(KWin::EffectWindowImpl*, int, QRegion const&, KWin::WindowPaintData&)
    (this=0x555555a4f3b0, w=0x555556590290, mask=10, region=..., data=...) at /home/nico/kde/src/kwin/src/scene.cpp:647
#26 0x00007ffff6bfecb7 in KWin::EffectsHandlerImpl::paintWindow(KWin::EffectWindow*, int, QRegion const&, KWin::WindowPaintData&)
    (this=0x555556149c40, w=0x555556590290, mask=10, region=..., data=...) at /home/nico/kde/src/kwin/src/effects.cpp:433
#27 0x00007ffff683cfdb in KWin::Effect::paintWindow(KWin::EffectWindow*, int, QRegion, KWin::WindowPaintData&) (this=0x5555560712b0, w=0x555556590290, mask=10, region=..., data=...)
    at /home/nico/kde/src/kwin/src/libkwineffects/kwineffects.cpp:585
#28 0x00007ffff6bfec70 in KWin::EffectsHandlerImpl::paintWindow(KWin::EffectWindow*, int, QRegion const&, KWin::WindowPaintData&)
    (this=0x555556149c40, w=0x555556590290, mask=10, region=..., data=...) at /home/nico/kde/src/kwin/src/effects.cpp:430
#29 0x00007ffff682e8d0 in KWin::AnimationEffect::paintWindow(KWin::EffectWindow*, int, QRegion, KWin::WindowPaintData&)
    (this=0x555556471a20, w=0x555556590290, mask=10, region=..., data=...) at /home/nico/kde/src/kwin/src/libkwineffects/kwinanimationeffect.cpp:721

and 

#0  0x00007ffff3d61ef5 in raise () at /usr/lib/libc.so.6
#1  0x00007ffff3d4b862 in abort () at /usr/lib/libc.so.6
#2  0x00007ffff3da3f38 in __libc_message () at /usr/lib/libc.so.6
#3  0x00007ffff3dabbea in  () at /usr/lib/libc.so.6
#4  0x00007ffff3dacae6 in unlink_chunk.constprop () at /usr/lib/libc.so.6
#5  0x00007ffff3dad33b in _int_free () at /usr/lib/libc.so.6
#6  0x00007ffff3db0ca8 in free () at /usr/lib/libc.so.6
#7  0x00007fffe678eba9 in  () at /usr/lib/dri/iris_dri.so
#8  0x00007fffe6e5879e in  () at /usr/lib/dri/iris_dri.so
#9  0x00007fffe6414e30 in  () at /usr/lib/dri/iris_dri.so
#10 0x00007fffe6422db5 in  () at /usr/lib/dri/iris_dri.so
#11 0x00007fffe6422e00 in  () at /usr/lib/dri/iris_dri.so
#12 0x00007fffe647cdff in  () at /usr/lib/dri/iris_dri.so
#13 0x00007fffe6571a08 in  () at /usr/lib/dri/iris_dri.so
#14 0x00007fffe6571acf in  () at /usr/lib/dri/iris_dri.so
#15 0x00007fffe6571c1d in  () at /usr/lib/dri/iris_dri.so
#16 0x00007fffe6575111 in  () at /usr/lib/dri/iris_dri.so
#17 0x00007ffff67e3608 in KWin::GLShader::~GLShader() (this=0x5555560c4660, __in_chrg=<optimized out>) at /home/nico/kde/src/kwin/src/libkwineffects/kwinglutils.cpp:159
#18 0x00007ffff68af68b in QScopedPointerDeleter<KWin::GLShader>::cleanup(KWin::GLShader*) (pointer=0x5555560c4660) at /home/nico/kde/usr/include/QtCore/qscopedpointer.h:60
#19 0x00007ffff68af603 in QScopedPointer<KWin::GLShader, QScopedPointerDeleter<KWin::GLShader> >::~QScopedPointer() (this=0x555555ff1238, __in_chrg=<optimized out>)
    at /home/nico/kde/usr/include/QtCore/qscopedpointer.h:107
#20 0x00007ffff68ae376 in KWin::BlurShader::~BlurShader() (this=0x555555ff1210, __in_chrg=<optimized out>) at /home/nico/kde/src/kwin/src/effects/blur/blurshader.cpp:237
#21 0x00007ffff68ae3ce in KWin::BlurShader::~BlurShader() (this=0x555555ff1210, __in_chrg=<optimized out>) at /home/nico/kde/src/kwin/src/effects/blur/blurshader.cpp:239
#22 0x00007ffff74aae4e in QObjectPrivate::deleteChildren() (this=0x555555662820) at kernel/qobject.cpp:2104
#23 0x00007ffff74b5a24 in QObject::~QObject() (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:1082
#24 0x00007ffff683cdfc in KWin::Effect::~Effect() (this=0x555556341150, __in_chrg=<optimized out>) at /home/nico/kde/src/kwin/src/libkwineffects/kwineffects.cpp:537
#25 0x00007ffff68a2a58 in KWin::BlurEffect::~BlurEffect() (this=0x555556341150, __in_chrg=<optimized out>) at /home/nico/kde/src/kwin/src/effects/blur/blur.cpp:70
#26 0x00007ffff68a2a74 in KWin::BlurEffect::~BlurEffect() (this=0x555556341150, __in_chrg=<optimized out>) at /home/nico/kde/src/kwin/src/effects/blur/blur.cpp:73
#27 0x00007ffff6c02117 in KWin::EffectsHandlerImpl::destroyEffect(KWin::Effect*) (this=0x5555560d6ad0, effect=0x555556341150) at /home/nico/kde/src/kwin/src/effects.cpp:1432
#28 0x00007ffff6bfdad9 in KWin::EffectsHandlerImpl::unloadAllEffects() (this=0x5555560d6ad0) at /home/nico/kde/src/kwin/src/effects.cpp:274
#29 0x00005555555ca824 in KWin::ApplicationWayland::~ApplicationWayland() (this=0x7fffffffd7b0, __in_chrg=<optimized out>) at /home/nico/kde/src/kwin/src/main_wayland.cpp:137
#30 0x00005555555d0567 in main(int, char**) (argc=3, argv=0x7fffffffda58) at /home/nico/kde/src/kwin/src/main_wayland.cpp:498
Comment 4 Nicolas Fella 2021-03-21 00:44:51 UTC
What may or may not be related is that tiling is also visually broken (see video)
Comment 5 Nicolas Fella 2021-03-21 00:45:02 UTC
Created attachment 136900 [details]
Video
Comment 6 Nicolas Fella 2021-03-21 00:59:55 UTC
Yet another different backtrace:

#0  0x00007ffff72daf93 in QHashData::free_helper(void (*)(QHashData::Node*))
    (this=0x55555657f170, node_delete=0x7ffff6646fa4 <QHash<QWindow*, QWeakPointer<QSGTexture> >::deleteNode2(QHashData::Node*)>) at tools/qhash.cpp:571
#1  0x00007ffff664682f in QHash<QWindow*, QWeakPointer<QSGTexture> >::freeData(QHashData*) (this=0x55555653f308, x=0x55555657f170) at /home/nico/kde/usr/include/QtCore/qhash.h:619
#2  0x00007ffff6645e40 in QHash<QWindow*, QWeakPointer<QSGTexture> >::~QHash() (this=0x55555653f308, __in_chrg=<optimized out>) at /home/nico/kde/usr/include/QtCore/qhash.h:250
#3  0x00007ffff6646f5c in QHashNode<long long, QHash<QWindow*, QWeakPointer<QSGTexture> > >::~QHashNode() (this=0x55555653f2f0, __in_chrg=<optimized out>)
    at /home/nico/kde/usr/include/QtCore/qhash.h:147
#4  0x00007ffff6646f80 in QHash<long long, QHash<QWindow*, QWeakPointer<QSGTexture> > >::deleteNode2(QHashData::Node*) (node=0x55555653f2f0)
    at /home/nico/kde/usr/include/QtCore/qhash.h:595
#5  0x00007ffff6646c1e in QHash<long long, QHash<QWindow*, QWeakPointer<QSGTexture> > >::deleteNode(QHashNode<long long, QHash<QWindow*, QWeakPointer<QSGTexture> > >*)
    (this=0x555556594e00, node=0x55555653f2f0) at /home/nico/kde/usr/include/QtCore/qhash.h:585
#6  0x00007ffff66462c2 in QHash<long long, QHash<QWindow*, QWeakPointer<QSGTexture> > >::remove(long long const&) (this=0x555556594e00, akey=@0x7fffffffa3c0: 2959232466948)
    at /home/nico/kde/usr/include/QtCore/qhash.h:824
#7  0x00007ffff6645326 in operator()(QSGTexture*) const (__closure=0x7fffffffa3b0, texture=0x55555660a5d0) at /home/nico/kde/src/kdeclarative/src/quickaddons/imagetexturescache.cpp:37
#8  0x00007ffff664583a in QtSharedPointer::executeDeleter<QSGTexture, ImageTexturesCache::loadTexture(QQuickWindow*, const QImage&, QQuickWindow::CreateTextureOptions)::<lambda(QSGTexture*)> >(QSGTexture *, struct {...}) (t=0x55555660a5d0, d=...) at /home/nico/kde/usr/include/QtCore/qsharedpointer_impl.h:114
#9  0x00007ffff66457e0 in QtSharedPointer::CustomDeleter<QSGTexture, ImageTexturesCache::loadTexture(QQuickWindow*, const QImage&, QQuickWindow::CreateTextureOptions)::<lambda(QSGTexture*)> >::execute(void) (this=0x5555565bcb60) at /home/nico/kde/usr/include/QtCore/qsharedpointer_impl.h:171
#10 0x00007ffff66456f6 in QtSharedPointer::ExternalRefCountWithCustomDeleter<QSGTexture, ImageTexturesCache::loadTexture(QQuickWindow*, const QImage&, QQuickWindow::CreateTextureOptions)::<lambda(QSGTexture*)> >::deleter(QtSharedPointer::ExternalRefCountData *) (self=0x5555565bcb50) at /home/nico/kde/usr/include/QtCore/qsharedpointer_impl.h:205
#11 0x00007fffb879a9df in QtSharedPointer::ExternalRefCountData::destroy() (this=0x5555565bcb50) at /home/nico/kde/usr/include/QtCore/qsharedpointer_impl.h:149
#12 0x00007fffb87af048 in QSharedPointer<QSGTexture>::deref(QtSharedPointer::ExternalRefCountData*) (dd=0x5555565bcb50) at /home/nico/kde/usr/include/QtCore/qsharedpointer_impl.h:458
#13 0x00007fffb87aee06 in QSharedPointer<QSGTexture>::deref() (this=0x555555ff3730) at /home/nico/kde/usr/include/QtCore/qsharedpointer_impl.h:453
#14 0x00007fffb87aec60 in QSharedPointer<QSGTexture>::~QSharedPointer() (this=0x555555ff3730, __in_chrg=<optimized out>) at /home/nico/kde/usr/include/QtCore/qsharedpointer_impl.h:310
#15 0x00007fffb87b59ec in ManagedTextureNode::~ManagedTextureNode() (this=0x555555ff35b0, __in_chrg=<optimized out>)
    at /home/nico/kde/usr/include/KF5/KDeclarative/quickaddons/managedtexturenode.h:32
#16 0x00007fffb87b8112 in Plasma::FrameItemNode::~FrameItemNode() (this=0x555555ff35b0, __in_chrg=<optimized out>)
    at /home/nico/kde/src/plasma-framework/src/declarativeimports/core/framesvgitem.cpp:63
#17 0x00007fffb87b812e in Plasma::FrameItemNode::~FrameItemNode() (this=0x555555ff35b0, __in_chrg=<optimized out>)
    at /home/nico/kde/src/plasma-framework/src/declarativeimports/core/framesvgitem.cpp:63
#18 0x00007ffff628c652 in QSGNode::destroy() (this=this@entry=0x5555565ff7f0) at scenegraph/coreapi/qsgnode.cpp:388
#19 0x00007ffff628c677 in QSGNode::~QSGNode() (this=0x5555565ff7f0, __in_chrg=<optimized out>) at scenegraph/coreapi/qsgnode.cpp:326
#20 0x00007fffb87b8162 in Plasma::FrameNode::~FrameNode() (this=0x5555565ff7f0, __in_chrg=<optimized out>)
    at /home/nico/kde/src/plasma-framework/src/declarativeimports/core/framesvgitem.cpp:29
#21 0x00007fffb87b817e in Plasma::FrameNode::~FrameNode() (this=0x5555565ff7f0, __in_chrg=<optimized out>)
    at /home/nico/kde/src/plasma-framework/src/declarativeimports/core/framesvgitem.cpp:29
#22 0x00007fffb87b3f2f in Plasma::FrameSvgItem::updatePaintNode(QSGNode*, QQuickItem::UpdatePaintNodeData*) (this=0x5555564264a0, oldNode=0x5555565ff7f0)
    at /home/nico/kde/src/plasma-framework/src/declarativeimports/core/framesvgitem.cpp:565
#23 0x00007ffff6357438 in QQuickWindowPrivate::updateDirtyNode(QQuickItem*) (this=0x5555560fc0c0, item=0x5555564264a0) at items/qquickwindow.cpp:3872
#24 0x00007ffff6357ccb in QQuickWindowPrivate::updateDirtyNodes() (this=this@entry=0x5555560fc0c0) at items/qquickwindow.cpp:3617
#25 0x00007ffff63595ac in QQuickWindowPrivate::syncSceneGraph() (this=this@entry=0x5555560fc0c0) at items/qquickwindow.cpp:524
#26 0x00007ffff62db39e in QSGGuiThreadRenderLoop::renderWindow(QQuickWindow*) (this=0x5555564626b0, window=<optimized out>) at scenegraph/qsgrenderloop.cpp:751
#27 0x00007ffff62dd237 in QSGGuiThreadRenderLoop::exposureChanged(QQuickWindow*) (this=0x5555564626b0, window=<optimized out>) at scenegraph/qsgrenderloop.cpp:852
#28 0x00007ffff789c1b5 in QWindow::event(QEvent*) (this=0x555556457230, ev=<optimized out>) at kernel/qwindow.cpp:2438
#29 0x00007ffff4c6314f in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x555556457230, e=0x7fffffffab00) at kernel/qapplication.cpp:3632
Comment 7 Nicolas Fella 2021-03-29 21:59:42 UTC
well, I don't get this any more. Quite possibly this was caused by a leftover kwin QPA plugin from before we made that static