Bug 476827 - kwin_wayland crashes when using chromium if dim inactive effect enabled
Summary: kwin_wayland crashes when using chromium if dim inactive effect enabled
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: effects-various (show other bugs)
Version: 5.27.80
Platform: Other Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: qt6
Depends on:
Blocks:
 
Reported: 2023-11-11 07:34 UTC by Antonio Rojas
Modified: 2023-11-22 11:45 UTC (History)
2 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 Antonio Rojas 2023-11-11 07:34:18 UTC
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
Comment 1 Nate Graham 2023-11-15 19:55:09 UTC
Can reproduce.
Comment 2 Bug Janitor Service 2023-11-22 11:06:46 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/4690
Comment 3 Vlad Zahorodnii 2023-11-22 11:45:33 UTC
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