Bug 500114 - KWin crashed in KWin::GLFramebuffer::~GLFramebuffer on login
Summary: KWin crashed in KWin::GLFramebuffer::~GLFramebuffer on login
Status: CONFIRMED
Alias: None
Product: kwin
Classification: Plasma
Component: generic-crash (show other bugs)
Version: 6.3.0
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2025-02-15 09:42 UTC by bug2017
Modified: 2025-02-21 16:24 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report: https://crash-reports.kde.org/organizations/kde/issues/87951


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description bug2017 2025-02-15 09:42:55 UTC
Application: kwin_x11 (6.3.0)
 (Compiled from sources)
ApplicationNotResponding [ANR]: false
Qt Version: 6.8.2
Frameworks Version: 6.10.0
Operating System: Linux 6.13.2-gentoo-x86_64 x86_64
Windowing System: X11
Distribution: "Gentoo Linux"
DrKonqi: 6.3.0 [KCrashBackend]

-- Information about the crash:
It crashed after reboot into upgraded plasma 6.3 into a x11 session.
It looks like it was immediately restarted without crash loop (So I can rebort this in the same session)

The reporter is unsure if this crash is reproducible.

-- Backtrace:
Application: KWin (kwin_x11), signal: Aborted
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = 0x0}
[KCrash Handler]
#6  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#7  0x00007f43350d1f63 in __pthread_kill_internal (threadid=<optimized out>, signo=6) at pthread_kill.c:89
#8  0x00007f433507bd96 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#9  0x00007f433506430b in __GI_abort () at abort.c:73
#10 0x00007f4335064275 in __assert_fail_base (fmt=<optimized out>, assertion=<optimized out>, file=<optimized out>, line=872, function=<optimized out>) at assert.c:118
#11 0x00007f4335074500 in __assert_fail (assertion=<optimized out>, file=<optimized out>, line=<optimized out>, function=<optimized out>) at assert.c:127
#12 0x00007f4336d930df in epoxy_get_proc_address (name=0x7f4336da33d9 <entrypoint_strings+9593> "glDeleteFramebuffers") at ../libepoxy-1.5.10/src/dispatch_common.c:872
#13 0x00007f4336d6866a in epoxy_glDeleteFramebuffers_resolver () at src/gl_generated_dispatch.c:81572
#14 epoxy_glDeleteFramebuffers_global_rewrite_ptr (n=1, framebuffers=0x55b457bfd1f0) at src/gl_generated_dispatch.c:114982
#15 0x00007f4337196c85 in KWin::GLFramebuffer::~GLFramebuffer (this=0x55b457bfd1f0, __in_chrg=<optimized out>) at /var/tmp/portage/kde-plasma/kwin-6.3.0-r1/work/kwin-6.3.0/src/opengl/glframebuffer.cpp:120
#16 0x00007f43371196f5 in std::default_delete<KWin::GLFramebuffer>::operator() (this=<optimized out>, __ptr=0x55b457bfd1f0) at /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/unique_ptr.h:87
#17 std::default_delete<KWin::GLFramebuffer>::operator() (this=<optimized out>, __ptr=0x55b457bfd1f0) at /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/unique_ptr.h:87
#18 std::unique_ptr<KWin::GLFramebuffer, std::default_delete<KWin::GLFramebuffer> >::~unique_ptr (this=0x55b456d19e80, __in_chrg=<optimized out>) at /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/unique_ptr.h:399
#19 KWin::OffscreenData::~OffscreenData (this=this@entry=0x55b456d19e70, __in_chrg=<optimized out>) at /var/tmp/portage/kde-plasma/kwin-6.3.0-r1/work/kwin-6.3.0/src/effect/offscreeneffect.cpp:146
#20 0x00007f433711b187 in KWin::CrossFadeWindowData::~CrossFadeWindowData (this=0x55b456d19e70, __in_chrg=<optimized out>) at /var/tmp/portage/kde-plasma/kwin-6.3.0-r1/work/kwin-6.3.0/src/effect/offscreeneffect.cpp:293
#21 KWin::CrossFadeWindowData::~CrossFadeWindowData (this=0x55b456d19e70, __in_chrg=<optimized out>) at /var/tmp/portage/kde-plasma/kwin-6.3.0-r1/work/kwin-6.3.0/src/effect/offscreeneffect.cpp:293
#22 0x00007f4337119201 in std::default_delete<KWin::CrossFadeWindowData>::operator() (this=<optimized out>, __ptr=<optimized out>) at /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/unique_ptr.h:87
#23 std::unique_ptr<KWin::CrossFadeWindowData, std::default_delete<KWin::CrossFadeWindowData> >::~unique_ptr (this=0x55b457c57738, __in_chrg=<optimized out>) at /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/unique_ptr.h:399
#24 std::pair<KWin::EffectWindow* const, std::unique_ptr<KWin::CrossFadeWindowData, std::default_delete<KWin::CrossFadeWindowData> > >::~pair (this=0x55b457c57730, __in_chrg=<optimized out>) at /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/stl_pair.h:284
#25 std::destroy_at<std::pair<KWin::EffectWindow* const, std::unique_ptr<KWin::CrossFadeWindowData, std::default_delete<KWin::CrossFadeWindowData> > > > (__location=0x55b457c57730) at /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/stl_construct.h:88
#26 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<KWin::EffectWindow* const, std::unique_ptr<KWin::CrossFadeWindowData, std::default_delete<KWin::CrossFadeWindowData> > > > > >::destroy<std::pair<KWin::EffectWindow* const, std::unique_ptr<KWin::CrossFadeWindowData, std::default_delete<KWin::CrossFadeWindowData> > > > (__a=..., __p=0x55b457c57730) at /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/alloc_traits.h:593
#27 std::_Rb_tree<KWin::EffectWindow*, std::pair<KWin::EffectWindow* const, std::unique_ptr<KWin::CrossFadeWindowData, std::default_delete<KWin::CrossFadeWindowData> > >, std::_Select1st<std::pair<KWin::EffectWindow* const, std::unique_ptr<KWin::CrossFadeWindowData, std::default_delete<KWin::CrossFadeWindowData> > > >, std::less<KWin::EffectWindow*>, std::allocator<std::pair<KWin::EffectWindow* const, std::unique_ptr<KWin::CrossFadeWindowData, std::default_delete<KWin::CrossFadeWindowData> > > > >::_M_destroy_node (this=0x7f42f8143f20, __p=0x55b457c57710) at /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/stl_tree.h:621
#28 std::_Rb_tree<KWin::EffectWindow*, std::pair<KWin::EffectWindow* const, std::unique_ptr<KWin::CrossFadeWindowData, std::default_delete<KWin::CrossFadeWindowData> > >, std::_Select1st<std::pair<KWin::EffectWindow* const, std::unique_ptr<KWin::CrossFadeWindowData, std::default_delete<KWin::CrossFadeWindowData> > > >, std::less<KWin::EffectWindow*>, std::allocator<std::pair<KWin::EffectWindow* const, std::unique_ptr<KWin::CrossFadeWindowData, std::default_delete<KWin::CrossFadeWindowData> > > > >::_M_drop_node (this=0x7f42f8143f20, __p=0x55b457c57710) at /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/stl_tree.h:629
#29 std::_Rb_tree<KWin::EffectWindow*, std::pair<KWin::EffectWindow* const, std::unique_ptr<KWin::CrossFadeWindowData, std::default_delete<KWin::CrossFadeWindowData> > >, std::_Select1st<std::pair<KWin::EffectWindow* const, std::unique_ptr<KWin::CrossFadeWindowData, std::default_delete<KWin::CrossFadeWindowData> > > >, std::less<KWin::EffectWindow*>, std::allocator<std::pair<KWin::EffectWindow* const, std::unique_ptr<KWin::CrossFadeWindowData, std::default_delete<KWin::CrossFadeWindowData> > > > >::_M_erase_aux (this=0x7f42f8143f20, __position=Python Exception <class 'gdb.error'>: value has been optimized out
) at /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/stl_tree.h:2492
#30 std::_Rb_tree<KWin::EffectWindow*, std::pair<KWin::EffectWindow* const, std::unique_ptr<KWin::CrossFadeWindowData, std::default_delete<KWin::CrossFadeWindowData> > >, std::_Select1st<std::pair<KWin::EffectWindow* const, std::unique_ptr<KWin::CrossFadeWindowData, std::default_delete<KWin::CrossFadeWindowData> > > >, std::less<KWin::EffectWindow*>, std::allocator<std::pair<KWin::EffectWindow* const, std::unique_ptr<KWin::CrossFadeWindowData, std::default_delete<KWin::CrossFadeWindowData> > > > >::erase[abi:cxx11](std::_Rb_tree_iterator<std::pair<KWin::EffectWindow* const, std::unique_ptr<KWin::CrossFadeWindowData, std::default_delete<KWin::CrossFadeWindowData> > > >) (this=0x7f42f8143f20, __position=Python Exception <class 'gdb.error'>: value has been optimized out
) at /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/stl_tree.h:1206
#31 std::map<KWin::EffectWindow*, std::unique_ptr<KWin::CrossFadeWindowData, std::default_delete<KWin::CrossFadeWindowData> >, std::less<KWin::EffectWindow*>, std::allocator<std::pair<KWin::EffectWindow* const, std::unique_ptr<KWin::CrossFadeWindowData, std::default_delete<KWin::CrossFadeWindowData> > > > >::erase[abi:cxx11](std::_Rb_tree_iterator<std::pair<KWin::EffectWindow* const, std::unique_ptr<KWin::CrossFadeWindowData, std::default_delete<KWin::CrossFadeWindowData> > > >) (this=0x7f42f8143f20, __position=Python Exception <class 'gdb.error'>: value has been optimized out
) at /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/stl_map.h:1087
#32 KWin::CrossFadeEffect::unredirect (this=this@entry=0x55b456b29ac0, window=<optimized out>) at /var/tmp/portage/kde-plasma/kwin-6.3.0-r1/work/kwin-6.3.0/src/effect/offscreeneffect.cpp:404
#33 0x00007f43370e8255 in KWin::AnimationEffect::cancel (this=this@entry=0x55b456b29ac0, animationId=23) at /var/tmp/portage/kde-plasma/kwin-6.3.0-r1/work/kwin-6.3.0/src/effect/animationeffect.cpp:399
#34 0x00007f4337235059 in KWin::ScriptedEffect::cancel (this=this@entry=0x55b456b29ac0, animationId=<optimized out>) at /var/tmp/portage/kde-plasma/kwin-6.3.0-r1/work/kwin-6.3.0/src/scripting/scriptedeffect.cpp:571
#35 0x00007f4337235097 in KWin::ScriptedEffect::cancel (this=0x55b456b29ac0, animationIds=<optimized out>) at /var/tmp/portage/kde-plasma/kwin-6.3.0-r1/work/kwin-6.3.0/src/scripting/scriptedeffect.cpp:578
#36 0x00007f433723a9f7 in KWin::ScriptedEffect::qt_static_metacall (_o=_o@entry=0x55b456b29ac0, _c=_c@entry=QMetaObject::InvokeMetaMethod, _id=_id@entry=50, _a=_a@entry=0x7fff4e24ea58) at /var/tmp/portage/kde-plasma/kwin-6.3.0-r1/work/kwin-6.3.0_build/src/kwin_autogen/include/moc_scriptedeffect.cpp:714
#37 0x00007f433723c6c7 in KWin::ScriptedEffect::qt_metacall (this=0x55b456b29ac0, _c=<optimized out>, _id=50, _a=0x7fff4e24ea58) at /var/tmp/portage/kde-plasma/kwin-6.3.0-r1/work/kwin-6.3.0_build/src/kwin_autogen/include/moc_scriptedeffect.cpp:1034
#38 0x00007f4335f8ea53 in QQmlObjectOrGadget::metacall (this=this@entry=0x7fff4e24ed30, type=type@entry=QMetaObject::InvokeMetaMethod, index=<optimized out>, index@entry=60, argv=<optimized out>) at /var/tmp/portage/dev-qt/qtdeclarative-6.8.2/work/qtdeclarative-everywhere-src-6.8.2/src/qml/qml/qqmlobjectorgadget.cpp:14
#39 0x00007f43360de5f8 in QV4::CallMethod (object=..., index=<optimized out>, returnType=..., argCount=<optimized out>, argTypes=<optimized out>, engine=<optimized out>, callArgs=<optimized out>, callType=<optimized out>) at /usr/include/qt6/QtCore/qvarlengtharray.h:85
#40 QV4::QObjectMethod::callPrecise (object=..., data=<optimized out>, engine=<optimized out>, engine@entry=0x7f43100075c0, callArgs=<optimized out>, callArgs@entry=0x7f42b88b55e8, callType=callType@entry=QMetaObject::InvokeMetaMethod) at /var/tmp/portage/dev-qt/qtdeclarative-6.8.2/work/qtdeclarative-everywhere-src-6.8.2/src/qml/jsruntime/qv4qobjectwrapper.cpp:2067
#41 0x00007f43360dfff1 in operator() (__closure=<optimized out>) at /var/tmp/portage/dev-qt/qtdeclarative-6.8.2/work/qtdeclarative-everywhere-src-6.8.2/src/qml/jsruntime/qv4qobjectwrapper.cpp:3065
#42 operator()<QV4::QObjectMethod::callInternal(const QV4::Value*, const QV4::Value*, int) const::<lambda()> > (__closure=<synthetic pointer>, call=<optimized out>) at /var/tmp/portage/dev-qt/qtdeclarative-6.8.2/work/qtdeclarative-everywhere-src-6.8.2/src/qml/jsruntime/qv4qobjectwrapper.cpp:3042
#43 QV4::QObjectMethod::callInternal (this=<optimized out>, thisObject=0x7f42b88b55d0, argv=0x7f42b88b5590, argc=1) at /var/tmp/portage/dev-qt/qtdeclarative-6.8.2/work/qtdeclarative-everywhere-src-6.8.2/src/qml/jsruntime/qv4qobjectwrapper.cpp:3065
#44 0x00007f43360c37ac in QV4::Runtime::CallName::call (engine=0x7f43100075c0, nameIndex=30, argv=0x7f42b88b5590, argc=1) at /var/tmp/portage/dev-qt/qtdeclarative-6.8.2/work/qtdeclarative-everywhere-src-6.8.2/src/qml/jsruntime/qv4runtime.cpp:1510
#45 0x00007f42b3c64c8a in ??? ()
#46 0x0000000000000000 in ??? ()
[Inferior 1 (process 3189) detached]

Reported using DrKonqi
Comment 1 cwo 2025-02-17 00:54:20 UTC
Top of the trace seems similar to bug 497278 but that one is supposed to be fixed with 6.3.0
Comment 2 Zamundaaa 2025-02-20 14:54:28 UTC
Yeah, there's checks that are supposed to prevent exactly this problem. I'm not sure how this can possibly happen.
Comment 3 bug2017 2025-02-21 16:24:26 UTC
Application: kwin_x11 (6.3.1)
 (Compiled from sources)
ApplicationNotResponding [ANR]: false
Qt Version: 6.8.2
Frameworks Version: 6.11.0
Operating System: Linux 6.13.3-gentoo-r1-x86_64 x86_64
Windowing System: X11
Distribution: "Gentoo Linux"
DrKonqi: 6.3.1 [KCrashBackend]

The crash happens on every login, after update the backtrace still looks the same.