Summary: | Kwin crashes in KWin::belongToSameGroup() in "Dim Inactive" effect when closing grouped app | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | Linus Kardell <linus.kardell> |
Component: | effects-various | Assignee: | KWin default assignee <kwin-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | davidincyberspace, k21gcy20j, karl, nate, slavomirr |
Priority: | NOR | ||
Version: | 5.22.5 | ||
Target Milestone: | --- | ||
Platform: | openSUSE | ||
OS: | Linux | ||
See Also: | https://bugs.kde.org/show_bug.cgi?id=470061 | ||
Latest Commit: | https://invent.kde.org/plasma/kwin/commit/d57be742ff5b9e94fb923f72f481090cf4896a3d | Version Fixed In: | 5.27 |
Sentry Crash Report: |
Description
Linus Kardell
2021-09-09 12:06:02 UTC
Unfortunately the backtrace is incomplete and missing debug symbols that we need to figure out exactly what's going wrong: #6 0x00007f1c99095f51 in () at /lib64/libkwin4_effect_builtins.so.1 #7 0x00007f1c99096ccb in () at /lib64/libkwin4_effect_builtins.so.1 Could you please install debug symbols for kwin, reproduce the crash, and attach a new symbolicated backtrace? See https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports Thanks! Apparently the reason installing the debuginfo didn't work earlier was because of a version mismatch as I hadn't updated in a while. After updating and doing it again I got this: Application: Kwin (kwin_x11), signal: Segmentation fault Content of s_kcrashErrorMessage: [Current thread is 1 (Thread 0x7f5da15d0980 (LWP 6623))] [KCrash Handler] #6 0x00007f5da50a3f51 in KWin::belongToSameGroup (w2=0x5654fdf239f0, w1=0x5654fe3c3190) at /usr/src/debug/kwin5-5.22.5-1.1.x86_64/src/effects/diminactive/diminactive.cpp:33 #7 KWin::DimInactiveEffect::canDimWindow(KWin::EffectWindow const*) const (this=0x5654fbb09020, w=0x5654fdf239f0) at /usr/src/debug/kwin5-5.22.5-1.1.x86_64/src/effects/diminactive/diminactive.cpp:179 #8 0x00007f5da50a4ccb in KWin::DimInactiveEffect::paintWindow(KWin::EffectWindow*, int, QRegion, KWin::WindowPaintData&) (this=this@entry=0x5654fbb09020, w=<optimized out>, w@entry=0x5654fdf239f0, mask=mask@entry=1, region=..., data=...) at /usr/src/debug/kwin5-5.22.5-1.1.x86_64/src/effects/diminactive/diminactive.cpp:124 #9 0x00007f5da6cf77e3 in KWin::EffectsHandlerImpl::paintWindow(KWin::EffectWindow*, int, QRegion const&, KWin::WindowPaintData&) (this=0x5654fdd63120, w=0x5654fdf239f0, mask=1, region=<optimized out>, data=...) at /usr/src/debug/kwin5-5.22.5-1.1.x86_64/src/effects.cpp:437 #10 0x00007f5da6cf77e3 in KWin::EffectsHandlerImpl::paintWindow(KWin::EffectWindow*, int, QRegion const&, KWin::WindowPaintData&) (this=0x5654fdd63120, w=0x5654fdf239f0, mask=1, region=<optimized out>, data=...) at /usr/src/debug/kwin5-5.22.5-1.1.x86_64/src/effects.cpp:437 #11 0x00007f5da6cf77e3 in KWin::EffectsHandlerImpl::paintWindow(KWin::EffectWindow*, int, QRegion const&, KWin::WindowPaintData&) (this=0x5654fdd63120, w=0x5654fdf239f0, mask=1, region=<optimized out>, data=...) at /usr/src/debug/kwin5-5.22.5-1.1.x86_64/src/effects.cpp:437 #12 0x00007f5da6d6539e in KWin::Scene::paintWindow(KWin::Scene::Window*, int, QRegion const&, KWin::WindowQuadList const&) (this=0x5654fbb42460, w=0x5654fdf23f10, mask=1, _region=<optimized out>, quads=...) at /usr/src/debug/kwin5-5.22.5-1.1.x86_64/src/effects.cpp:2142 #13 0x00007f5da6d67849 in KWin::Scene::paintSimpleScreen(int, QRegion const&) (this=<optimized out>, orig_mask=<optimized out>, region=<optimized out>) at /usr/src/debug/kwin5-5.22.5-1.1.x86_64/src/scene.cpp:432 #14 0x00007f5da6d61c9e in KWin::Scene::finalPaintScreen(int, QRegion const&, KWin::ScreenPaintData&) (this=0x5654fbb42460, mask=<optimized out>, region=<optimized out>, data=<optimized out>) at /usr/src/debug/kwin5-5.22.5-1.1.x86_64/src/scene.cpp:231 #15 0x00007f5da6cf7744 in KWin::EffectsHandlerImpl::paintScreen(int, QRegion const&, KWin::ScreenPaintData&) (this=0x5654fdd63120, mask=<optimized out>, region=<optimized out>, data=<optimized out>) at /usr/src/debug/kwin5-5.22.5-1.1.x86_64/src/effects.cpp:394 #16 0x00007f5da6cf7744 in KWin::EffectsHandlerImpl::paintScreen(int, QRegion const&, KWin::ScreenPaintData&) (this=0x5654fdd63120, mask=<optimized out>, region=<optimized out>, data=<optimized out>) at /usr/src/debug/kwin5-5.22.5-1.1.x86_64/src/effects.cpp:394 #17 0x00007f5da6cf7744 in KWin::EffectsHandlerImpl::paintScreen(int, QRegion const&, KWin::ScreenPaintData&) (this=0x5654fdd63120, mask=<optimized out>, region=<optimized out>, data=<optimized out>) at /usr/src/debug/kwin5-5.22.5-1.1.x86_64/src/effects.cpp:394 #18 0x00007f5da6cf7744 in KWin::EffectsHandlerImpl::paintScreen(int, QRegion const&, KWin::ScreenPaintData&) (this=0x5654fdd63120, mask=<optimized out>, region=<optimized out>, data=<optimized out>) at /usr/src/debug/kwin5-5.22.5-1.1.x86_64/src/effects.cpp:394 #19 0x00007f5da6cf7744 in KWin::EffectsHandlerImpl::paintScreen(int, QRegion const&, KWin::ScreenPaintData&) (this=0x5654fdd63120, mask=<optimized out>, region=<optimized out>, data=<optimized out>) at /usr/src/debug/kwin5-5.22.5-1.1.x86_64/src/effects.cpp:394 #20 0x00007f5da6d64200 in KWin::Scene::paintScreen(int*, QRegion const&, QRegion const&, QRegion*, QRegion*, KWin::RenderLoop*, QMatrix4x4 const&) (this=this@entry=0x5654fbb42460, mask=mask@entry=0x7ffe50240080, damage=..., repaint=..., updateRegion=updateRegion@entry=0x7ffe50240098, validRegion=validRegion@entry=0x7ffe50240090, renderLoop=0x5654fb9e2380, projection=...) at /usr/src/debug/kwin5-5.22.5-1.1.x86_64/src/scene.cpp:203 #21 0x00007f5d9c02f010 in KWin::SceneOpenGL::paint(int, QRegion const&, QList<KWin::Toplevel*> const&, KWin::RenderLoop*) (this=0x5654fbb42460, screenId=-1, damage=<optimized out>, toplevels=<optimized out>, renderLoop=<optimized out>) at /usr/src/debug/kwin5-5.22.5-1.1.x86_64/src/plugins/scenes/opengl/scene_opengl.cpp:695 #22 0x00007f5da6cc7308 in KWin::Compositor::composite(KWin::RenderLoop*) (this=0x5654fba614a0, renderLoop=0x5654fb9e2380) at /usr/src/debug/kwin5-5.22.5-1.1.x86_64/src/composite.cpp:628 #23 0x00007f5da6cc772b in KWin::X11Compositor::composite(KWin::RenderLoop*) (this=0x5654fba614a0, renderLoop=<optimized out>) at /usr/src/debug/kwin5-5.22.5-1.1.x86_64/src/composite.cpp:810 #24 0x00007f5da58ef033 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffe50240370, r=0x5654fba614a0, this=0x5654fbbd5ec0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #25 doActivate<false>(QObject*, int, void**) (sender=0x5654fb9e2380, signal_index=5, argv=0x7ffe50240370) at kernel/qobject.cpp:3886 #26 0x00007f5da58e84ff in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=<optimized out>, m=m@entry=0x7f5da6eeb700 <KWin::RenderLoop::staticMetaObject>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7ffe50240370) at kernel/qobject.cpp:3946 #27 0x00007f5da6c8cd92 in KWin::RenderLoop::frameRequested(KWin::RenderLoop*) (this=<optimized out>, _t1=<optimized out>) at /usr/src/debug/kwin5-5.22.5-1.1.x86_64/build/src/kwin_autogen/EWIEGA46WW/moc_renderloop.cpp:206 #28 0x00007f5da6d56f53 in KWin::RenderLoopPrivate::dispatch() (this=0x5654fb8c1250) at /usr/src/debug/kwin5-5.22.5-1.1.x86_64/src/renderloop.cpp:162 #29 0x00007f5da58ef033 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffe50240490, r=0x5654fb9e2380, this=0x5654fb8a0630) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #30 doActivate<false>(QObject*, int, void**) (sender=0x5654fb8c1268, signal_index=3, argv=0x7ffe50240490) at kernel/qobject.cpp:3886 #31 0x00007f5da58e84ff in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=<optimized out>, m=m@entry=0x7f5da5b8abe0 <QTimer::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffe50240490) at kernel/qobject.cpp:3946 #32 0x00007f5da58f2eea in QTimer::timeout(QTimer::QPrivateSignal) (this=<optimized out>, _t1=...) at .moc/moc_qtimer.cpp:205 #33 0x00007f5da58e4eff in QObject::event(QEvent*) (this=0x5654fb8c1268, e=0x7ffe50240610) at kernel/qobject.cpp:1336 #34 0x00007f5da648ea7f in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x5654fb8c1268, e=0x7ffe50240610) at kernel/qapplication.cpp:3632 #35 0x00007f5da58b89ea in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x5654fb8c1268, event=0x7ffe50240610) at kernel/qcoreapplication.cpp:1064 #36 0x00007f5da590f25b in QTimerInfoList::activateTimers() (this=this@entry=0x5654fb7db638) at kernel/qtimerinfo_unix.cpp:643 #37 0x00007f5da590ca1c in QEventDispatcherUNIXPrivate::activateTimers() (this=this@entry=0x5654fb7db5b0) at kernel/qeventdispatcher_unix.cpp:249 #38 0x00007f5da590d767 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x5654fb89f2d0, flags=...) at kernel/qeventdispatcher_unix.cpp:516 #39 0x00007f5d9f6ac0ae in QXcbUnixEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x5654fb89f2d0, flags=...) at qxcbeventdispatcher.cpp:60 #40 0x00007f5da58b73eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffe502407b0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #41 0x00007f5da58bf6d0 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #42 0x00007f5da5d0519c in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1867 #43 0x00007f5da648e9f5 in QApplication::exec() () at kernel/qapplication.cpp:2824 #44 0x00005654fb763fb6 in main(int, char**) (argc=<optimized out>, argv=0x7ffe50240a48) at /usr/src/debug/kwin5-5.22.5-1.1.x86_64/src/main_x11.cpp:479 [Inferior 1 (process 6623) detached] Thanks, that's helpful. Now we can tell that the problem is caused by the Dim Inactive effect. As a workaround, are you able to stop the crash by disabling that effect? Yes, the crash does not happen if dim inactive is disabled. Thanks for confirming. *** Bug 445375 has been marked as a duplicate of this bug. *** I also sometimes get a crash in the same place if I switch activities back and forth a bunch of times in a row with super+tab. *** Bug 449702 has been marked as a duplicate of this bug. *** *** Bug 453626 has been marked as a duplicate of this bug. *** *** Bug 459380 has been marked as a duplicate of this bug. *** A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/3449 Git commit d57be742ff5b9e94fb923f72f481090cf4896a3d by Vlad Zahorodnii. Committed on 17/01/2023 at 18:41. Pushed by vladz into branch 'master'. effects/diminactive: Ensure that m_activeWindow is always reset As the FIXME comment says, a window can be deleted without prior windowClosed signal. M +3 -0 src/effects/diminactive/diminactive.cpp https://invent.kde.org/plasma/kwin/commit/d57be742ff5b9e94fb923f72f481090cf4896a3d |