Bug 432171 - Crash in EglMultiBackend::beginFrame()
Summary: Crash in EglMultiBackend::beginFrame()
Status: RESOLVED WORKSFORME
Alias: None
Product: kwin
Classification: Plasma
Component: general (other bugs)
Version First Reported In: git master
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-01-26 16:51 UTC by Vlad Zahorodnii
Modified: 2023-01-18 14:32 UTC (History)
1 user (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vlad Zahorodnii 2021-01-26 16:51:19 UTC
* frame #0: 0x00007f0d9e2f2615 libc.so.6`raise + 325
    frame #1: 0x00007f0d9e2db862 libc.so.6`abort + 278
    frame #2: 0x00007f0da269a235 libQt5Core.so.5`::qt_message_fatal((null)=QtFatalMsg, context=0x00007fff87049010, message=0x00007fff87048f00) at qlogging.cpp:1914:15
    frame #3: 0x00007f0da26968a0 libQt5Core.so.5`QMessageLogger::fatal(this=0x00007fff87049010, msg="ASSERT: \"%s\" in file %s, line %d") const at qlogging.cpp:893:21
    frame #4: 0x00007f0da268d2d0 libQt5Core.so.5`qt_assert(assertion="backend != nullptr", file="/data/projects/src/kwin/plugins/platforms/drm/egl_multi_backend.cpp", line=63) at qglobal.cpp:3358:46
    frame #5: 0x00007f0d983f42ad KWinWaylandDrmBackend.so`KWin::EglMultiBackend::beginFrame(this=0x000055fd953c55d0, screenId=2) at egl_multi_backend.cpp:63:5
    frame #6: 0x00007f0d980ba0d9 KWinSceneOpenGL.so`KWin::SceneOpenGL::paint(this=0x000055fd940f5970, screenId=2, damage=0x00007fff87049350, toplevels=0x00007fff870493d0, presentTime=(__r = 8664177)) at scene_opengl.cpp:622:26
    frame #7: 0x00007f0da1f90c09 libkwin.so.5`KWin::Compositor::handleFrameRequested(this=0x000055fd93e89d20, renderLoop=0x000055fd93e76690) at composite.cpp:669:14
    frame #8: 0x00007f0da1f99b7c libkwin.so.5`QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<KWin::RenderLoop*>, void, void (KWin::Compositor::*)(KWin::RenderLoop*)>::call(f=81 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00, o=0x000055fd93e89d20, arg=0x00007fff870496d0)(KWin::RenderLoop*), KWin::Compositor*, void**) at qobjectdefs_impl.h:152:13
    frame #9: 0x00007f0da1f99ad8 libkwin.so.5`void QtPrivate::FunctionPointer<void (KWin::Compositor::*)(KWin::RenderLoop*)>::call<QtPrivate::List<KWin::RenderLoop*>, void>(f=81 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00, o=0x000055fd93e89d20, arg=0x00007fff870496d0)(KWin::RenderLoop*), KWin::Compositor*, void**) at qobjectdefs_impl.h:185:13
    frame #10: 0x00007f0da1f99a05 libkwin.so.5`QtPrivate::QSlotObject<void (KWin::Compositor::*)(KWin::RenderLoop*), QtPrivate::List<KWin::RenderLoop*>, void>::impl(which=1, this_=0x000055fd9540c400, r=0x000055fd93e89d20, a=0x00007fff870496d0, ret=0x0000000000000000) at qobjectdefs_impl.h:418:17
    frame #11: 0x00007f0da2930023 libQt5Core.so.5`QtPrivate::QSlotObjectBase::call(this=0x000055fd9540c400, r=0x000055fd93e89d20, a=0x00007fff870496d0) at qobjectdefs_impl.h:398:57
    frame #12: 0x00007f0da297327c libQt5Core.so.5`void doActivate<false>(sender=0x000055fd93e76690, signal_index=5, argv=0x00007fff870496d0) at qobject.cpp:3886:30                                                                                                                                                     
    frame #13: 0x00007f0da296c7dd libQt5Core.so.5`QMetaObject::activate(sender=0x000055fd93e76690, m=0x00007f0da23fd700, local_signal_index=2, argv=0x00007fff870496d0) at qobject.cpp:3946:26
    frame #14: 0x00007f0da1f236f6 libkwin.so.5`KWin::RenderLoop::frameRequested(this=0x000055fd93e76690, _t1=0x000055fd93e76690) at moc_renderloop.cpp:193:5
    frame #15: 0x00007f0da20f2dc3 libkwin.so.5`KWin::RenderLoopPrivate::dispatch(this=0x000055fd93f26de0) at renderloop.cpp:143:13
    frame #16: 0x00007f0da20f34f8 libkwin.so.5`KWin::RenderLoopPrivate::RenderLoopPrivate(this=0x000055fd93e76780)::$_0::operator()() const at renderloop.cpp:30:71
    frame #17: 0x00007f0da20f34a6 libkwin.so.5`QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KWin::RenderLoopPrivate::RenderLoopPrivate(KWin::RenderLoop*)::$_0>::call(f=0x000055fd93e76780, arg=0x00007fff87049960)::$_0&, void**) at qobjectdefs_impl.h:146:13
    frame #18: 0x00007f0da20f3471 libkwin.so.5`void QtPrivate::Functor<KWin::RenderLoopPrivate::RenderLoopPrivate(KWin::RenderLoop*)::$_0, 0>::call<QtPrivate::List<>, void>(f=0x000055fd93e76780, (null)=0x000055fd93e76690, arg=0x00007fff87049960)::$_0&, void*, void**) at qobjectdefs_impl.h:256:13
    frame #19: 0x00007f0da20f341c libkwin.so.5`QtPrivate::QFunctorSlotObject<KWin::RenderLoopPrivate::RenderLoopPrivate(KWin::RenderLoop*)::$_0, 0, QtPrivate::List<>, void>::impl(which=1, this_=0x000055fd93e76770, r=0x000055fd93e76690, a=0x00007fff87049960, ret=0x0000000000000000) at qobjectdefs_impl.h:443:17
    frame #20: 0x00007f0da2930023 libQt5Core.so.5`QtPrivate::QSlotObjectBase::call(this=0x000055fd93e76770, r=0x000055fd93e76690, a=0x00007fff87049960) at qobjectdefs_impl.h:398:57
    frame #21: 0x00007f0da297327c libQt5Core.so.5`void doActivate<false>(sender=0x000055fd93f26df8, signal_index=3, argv=0x00007fff87049960) at qobject.cpp:3886:30                                                                                                                                                     
    frame #22: 0x00007f0da296c7dd libQt5Core.so.5`QMetaObject::activate(sender=0x000055fd93f26df8, m=0x00007f0da2d114a0, local_signal_index=0, argv=0x00007fff87049960) at qobject.cpp:3946:26
    frame #23: 0x00007f0da297ec38 libQt5Core.so.5`QTimer::timeout(this=0x000055fd93f26df8, _t1=QPrivateSignal @ 0x00007fff87049957) at moc_qtimer.cpp:205:26
    frame #24: 0x00007f0da297dbf7 libQt5Core.so.5`QTimer::timerEvent(this=0x000055fd93f26df8, e=0x00007fff87049f00) at qtimer.cpp:257:21
    frame #25: 0x00007f0da2965642 libQt5Core.so.5`QObject::event(this=0x000055fd93f26df8, e=0x00007fff87049f00) at qobject.cpp:1291:19
    frame #26: 0x00007f0d9f34bd3b libQt5Widgets.so.5`QApplicationPrivate::notify_helper(this=0x000055fd93ccd550, receiver=0x000055fd93f26df8, e=0x00007fff87049f00) at qapplication.cpp:3632:31
    frame #27: 0x00007f0d9f349079 libQt5Widgets.so.5`QApplication::notify(this=0x00007fff8704a918, receiver=0x000055fd93f26df8, e=0x00007fff87049f00) at qapplication.cpp:2972:31
    frame #28: 0x00007f0da291dd31 libQt5Core.so.5`QCoreApplication::notifyInternal2(receiver=0x000055fd93f26df8, event=0x00007fff87049f00) at qcoreapplication.cpp:1064:24
    frame #29: 0x00007f0da291e788 libQt5Core.so.5`QCoreApplication::sendEvent(receiver=0x000055fd93f26df8, event=0x00007fff87049f00) at qcoreapplication.cpp:1462:27
    frame #30: 0x00007f0da29b4ac3 libQt5Core.so.5`QTimerInfoList::activateTimers(this=0x000055fd93cfef48) at qtimerinfo_unix.cpp:643:40
    frame #31: 0x00007f0da29af648 libQt5Core.so.5`QEventDispatcherUNIXPrivate::activateTimers(this=0x000055fd93cfeec0) at qeventdispatcher_unix.cpp:249:36
    frame #32: 0x00007f0da29b0792 libQt5Core.so.5`QEventDispatcherUNIX::processEvents(this=0x000055fd93ce9ab0, flags=(i = 36)) at qeventdispatcher_unix.cpp:516:37                                                                                                                                                      
    frame #33: 0x00007f0d99b554a6 KWinQpaPlugin.so`QUnixEventDispatcherQPA::processEvents(this=0x000055fd93ce9ab0, flags=(i = 36)) at qunixeventdispatcher.cpp:63:67
    frame #34: 0x00007f0da291a3e3 libQt5Core.so.5`QEventLoop::processEvents(this=0x00007fff8704a0e0, flags=(i = 36)) at qeventloop.cpp:139:68
    frame #35: 0x00007f0da291a745 libQt5Core.so.5`QEventLoop::exec(this=0x00007fff8704a0e0, flags=(i = 0)) at qeventloop.cpp:232:22
    frame #36: 0x00007f0da291e5ca libQt5Core.so.5`QCoreApplication::exec() at qcoreapplication.cpp:1375:36
    frame #37: 0x00007f0da2e66184 libQt5Gui.so.5`QGuiApplication::exec() at qguiapplication.cpp:1867:34
    frame #38: 0x00007f0d9f348a45 libQt5Widgets.so.5`QApplication::exec() at qapplication.cpp:2824:33
    frame #39: 0x000055fd931f5960 kwin_wayland`main(argc=5, argv=0x00007fff8704ab78) at main_wayland.cpp:782:12
    frame #40: 0x00007f0d9e2dd152 libc.so.6`__libc_start_main + 242
    frame #41: 0x000055fd931c330e kwin_wayland`_start + 46

This crash happens randomly after changing system settings.
Comment 1 Zamundaaa 2021-01-31 23:49:35 UTC
Are the changes applied by KWaylandServer asynchronous / happening in a different thread than Compositor::handleFrameRequested?
Comment 2 Vlad Zahorodnii 2023-01-18 14:32:55 UTC
I think it can be closed