If 'dim inactive' effect is enabled, kwin_wayland crashes constantly when using Chromium (eg. when opening any menu). Program terminated with signal SIGSEGV, Segmentation fault. #0 std::__uniq_ptr_impl<KWin::EffectWindowGroupImpl, std::default_delete<KWin::EffectWindowGroupImpl> >::_M_ptr (this=0x38) at /usr/include/c++/13.2.1/bits/unique_ptr.h:199 199 pointer _M_ptr() const noexcept { return std::get<0>(_M_t); } [Current thread is 1 (Thread 0x7f7e40332a00 (LWP 14259))] (gdb) bt #0 std::__uniq_ptr_impl<KWin::EffectWindowGroupImpl, std::default_delete<KWin::EffectWindowGroupImpl> >::_M_ptr() const (this=0x38) at /usr/include/c++/13.2.1/bits/unique_ptr.h:199 #1 std::unique_ptr<KWin::EffectWindowGroupImpl, std::default_delete<KWin::EffectWindowGroupImpl> >::get() const (this=0x38) at /usr/include/c++/13.2.1/bits/unique_ptr.h:470 #2 KWin::Group::effectGroup() (this=0x0) at /usr/src/debug/kwin/kwin-5.27.80/src/group.h:80 #3 KWin::EffectWindowImpl::group() const (this=<optimized out>) at /usr/src/debug/kwin/kwin-5.27.80/src/effects.cpp:1727 #4 0x0000558921e5d494 in KWin::belongToSameGroup (w2=0x5589247dbe70, w1=<optimized out>) at /usr/src/debug/kwin/kwin-5.27.80/src/plugins/diminactive/diminactive.cpp:33 #5 KWin::DimInactiveEffect::canDimWindow(KWin::EffectWindow const*) const (this=0x558924712fc0, w=0x5589247dbe70) at /usr/src/debug/kwin/kwin-5.27.80/src/plugins/diminactive/diminactive.cpp:170 #6 0x0000558921e5e1b7 in KWin::DimInactiveEffect::paintWindow(KWin::RenderTarget const&, KWin::RenderViewport const&, KWin::EffectWindow*, int, QRegion, KWin::WindowPaintData&) (this=0x558924712fc0, renderTarget=..., viewport=..., w=0x5589247dbe70, mask=0, region=..., data=...) at /usr/src/debug/kwin/kwin-5.27.80/src/plugins/diminactive/diminactive.cpp:119 #7 0x00007f7e48021fd9 in KWin::EffectsHandlerImpl::paintWindow(KWin::RenderTarget const&, KWin::RenderViewport const&, KWin::EffectWindow*, int, QRegion const&, KWin::WindowPaintData&) (this=0x5589246b2df0, renderTarget=..., viewport=..., w=0x5589247dbe70, mask=0, region=<optimized out>, data=...) at /usr/src/debug/kwin/kwin-5.27.80/src/effects.cpp:314 #8 0x00007f7e48021fd9 in KWin::EffectsHandlerImpl::paintWindow(KWin::RenderTarget const&, KWin::RenderViewport const&, KWin::EffectWindow*, int, QRegion const&, KWin::WindowPaintData&) (this=0x5589246b2df0, renderTarget=..., viewport=..., w=0x5589247dbe70, mask=0, region=<optimized out>, data=...) at /usr/src/debug/kwin/kwin-5.27.80/src/effects.cpp:314 #9 0x00007f7e48021fd9 in KWin::EffectsHandlerImpl::paintWindow(KWin::RenderTarget const&, KWin::RenderViewport const&, KWin::EffectWindow*, int, QRegion const&, KWin::WindowPaintData&) (this=0x5589246b2df0, renderTarget=..., viewport=..., w=0x5589247dbe70, mask=0, region=<optimized out>, data=...) at /usr/src/debug/kwin/kwin-5.27.80/src/effects.cpp:314 #10 0x00007f7e481227d0 in KWin::WorkspaceScene::paintWindow(KWin::RenderTarget const&, KWin::RenderViewport const&, KWin::WindowItem*, int, QRegion const&) (this=<optimized out>, region=..., mask=0, item=0x558924c5eba0, viewport=..., renderTarget=...) at /usr/src/debug/kwin/kwin-5.27.80/src/scene/workspacescene.cpp:459 #11 KWin::WorkspaceScene::paintWindow(KWin::RenderTarget const&, KWin::RenderViewport const&, KWin::WindowItem*, int, QRegion const&) (this=this@entry=0x558923eb4e50, renderTarget=..., viewport=..., item=0x558924c5eba0, mask=0, region=...) at /usr/src/debug/kwin/kwin-5.27.80/src/scene/workspacescene.cpp:452 #12 0x00007f7e48122ab4 in KWin::WorkspaceScene::paintSimpleScreen(KWin::RenderTarget const&, KWin::RenderViewport const&, int, QRegion const&) (this=0x558923eb4e50, renderTarget=..., viewport=..., region=...) at /usr/src/debug/kwin/kwin-5.27.80/src/scene/workspacescene.cpp:425 #13 0x00007f7e480a13b0 in KWin::EffectsHandlerImpl::paintScreen(KWin::RenderTarget const&, KWin::RenderViewport const&, int, QRegion const&, KWin::Output*) (screen=<optimized out>, region=<optimized out>, mask=<optimized out>, viewport=<optimized out>, renderTarget=<optimized out>, this=0x5589246b2df0) at /usr/src/debug/kwin/kwin-5.27.80/src/effects.cpp:286 #14 KWin::Effect::paintScreen(KWin::RenderTarget const&, KWin::RenderViewport const&, int, QRegion const&, KWin::Output*) (this=<optimized out>, renderTarget=<optimized out>, viewport=<optimized out>, mask=<optimized out>, region=<optimized out>, screen=<optimized out>) at /usr/src/debug/kwin/kwin-5.27.80/src/libkwineffects/kwineffects.cpp:438 #15 0x00007f7e480a13b0 in KWin::EffectsHandlerImpl::paintScreen(KWin::RenderTarget const&, KWin::RenderViewport const&, int, QRegion const&, KWin::Output*) (screen=<optimized out>, region=<optimized out>, mask=<optimized out>, viewport=<optimized out>, renderTarget=<optimized out>, this=0x5589246b2df0) at /usr/src/debug/kwin/kwin-5.27.80/src/effects.cpp:286 #16 KWin::Effect::paintScreen(KWin::RenderTarget const&, KWin::RenderViewport const&, int, QRegion const&, KWin::Output*) (this=<optimized out>, renderTarget=<optimized out>, viewport=<optimized out>, mask=<optimized out>, region=<optimized out>, screen=<optimized out>) at /usr/src/debug/kwin/kwin-5.27.80/src/libkwineffects/kwineffects.cpp:438 #17 0x00007f7e48021f04 in KWin::EffectsHandlerImpl::paintScreen(KWin::RenderTarget const&, KWin::RenderViewport const&, int, QRegion const&, KWin::Output*) (this=0x5589246b2df0, renderTarget=<optimized out>, viewport=<optimized out>, mask=<optimized out>, region=<optimized out>, screen=<optimized out>) at /usr/src/debug/kwin/kwin-5.27.80/src/effects.cpp:286 #18 0x00007f7e481226d5 in KWin::WorkspaceScene::paint(KWin::RenderTarget const&, QRegion const&) (this=0x558923eb4e50, renderTarget=..., region=...) at /usr/src/debug/kwin/kwin-5.27.80/src/scene/workspacescene.cpp:367 #19 0x00007f7e4810c597 in KWin::SceneDelegate::paint(KWin::RenderTarget const&, QRegion const&) (this=<optimized out>, renderTarget=..., region=...) at /usr/src/debug/kwin/kwin-5.27.80/src/scene/scene.cpp:44 #20 0x00007f7e47fc4366 in KWin::Compositor::paintPass(KWin::RenderLayer*, KWin::RenderTarget const&, QRegion const&) (this=0x5589239f21e0, layer=0x55892398a9e0, renderTarget=..., region=...) at /usr/src/debug/kwin/kwin-5.27.80/src/compositor.cpp:254 #21 0x00007f7e47fc5d2d in KWin::Compositor::composite(KWin::RenderLoop*) (this=0x5589239f21e0, renderLoop=<optimized out>) at /usr/src/debug/kwin/kwin-5.27.80/src/compositor.cpp:186 #22 0x00007f7e457b9a59 in () at /usr/lib/libQt6Core.so.6 #23 0x00007f7e47fdb0c7 in KWin::RenderLoop::frameRequested(KWin::RenderLoop*) (this=<optimized out>, _t1=<optimized out>) at /usr/src/debug/kwin/build/src/kwin_autogen/include/moc_renderloop.cpp:302 #24 0x00007f7e47fe1278 in KWin::RenderLoopPrivate::dispatch() (this=0x558923ebc5c0) at /usr/src/debug/kwin/kwin-5.27.80/src/core/renderloop.cpp:164 #25 0x00007f7e457b9a59 in () at /usr/lib/libQt6Core.so.6 #26 0x00007f7e457c1b14 in QTimer::timerEvent(QTimerEvent*) () at /usr/lib/libQt6Core.so.6 #27 0x00007f7e457a4fe6 in QObject::event(QEvent*) () at /usr/lib/libQt6Core.so.6 #28 0x00007f7e4697318b in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt6Widgets.so.6 #29 0x00007f7e457626d8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt6Core.so.6 #30 0x00007f7e458c7b86 in QTimerInfoList::activateTimers() () at /usr/lib/libQt6Core.so.6 #31 0x00007f7e458c85b1 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt6Core.so.6 #32 0x00007f7e461e5da2 in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt6Gui.so.6 #33 0x00007f7e4576cc5e in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt6Core.so.6 #34 0x00007f7e45765178 in QCoreApplication::exec() () at /usr/lib/libQt6Core.so.6 #35 0x0000558921e1cdf8 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kwin/kwin-5.27.80/src/main_wayland.cpp:608
Can reproduce.
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/4690
Git commit 1f32d01a4953eeb567ddaac076b3de2b541acd2a by Vlad Zahorodnii. Committed on 22/11/2023 at 12:05. Pushed by vladz into branch 'master'. Guard against null Group in EffectWindow::group() Closed windows don't belong to any group. M +3 -3 src/effect/effectwindow.cpp https://invent.kde.org/plasma/kwin/-/commit/1f32d01a4953eeb567ddaac076b3de2b541acd2a