Bug 444200 - kwin_wayland segfaults when switching activities
Summary: kwin_wayland segfaults when switching activities
Status: RESOLVED DUPLICATE of bug 441547
Alias: None
Product: kwin
Classification: Plasma
Component: platform-wayland-nested (show other bugs)
Version: 5.23.1
Platform: Arch Linux Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-10-21 15:30 UTC by Berengal
Modified: 2021-10-27 08:01 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Log output after a crash (235.59 KB, text/plain)
2021-10-21 15:30 UTC, Berengal
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Berengal 2021-10-21 15:30:00 UTC
Created attachment 142728 [details]
Log output after a crash

SUMMARY
Since upgrading to plasma 5.23.1, kwin_wayland sometimes segfaults when switching activities. It is not consistent, but it only seems to happen when it's been at least more than a couple minutes since kwin started or I switched activity last. I can't trigger the crash just by switching a lot.

STEPS TO REPRODUCE
1. Have multiple activities set up
2. Switch activity using any method

OBSERVED RESULT
kwin_wayland crashes and restarts the session.

EXPECTED RESULT
No crash

SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: Arch Linux (kernel 5.14.14-arch1-1)
(available in About System)
KDE Plasma Version: 5.23.1
KDE Frameworks Version: 5.87.0
Qt Version: 5.15.2

ADDITIONAL INFORMATION
This started after updating to 5.23.1. I'm not sure if 5.23.0 has the same problem as I was only using that version for a very short time. The last version that didn't crash was 5.22.5.

I've attached the log output from journalctl after a crash.
Comment 1 Nate Graham 2021-10-21 17:26:04 UTC
Sadly the journalctl log isn't very useful coir crashes; can you please attach a backtrace? See https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports
Comment 2 Berengal 2021-10-22 14:42:26 UTC
Here is a backtrace I found.

(gdb) bt
#0  0x00007fbe8ab7d808 in __memmove_avx_unaligned_erms () at /usr/lib/libc.so.6
#1  0x00007fbe7e526d13 in std::__copy_move<false, true, std::random_access_iterator_tag>::__copy_m<unsigned int>(unsigned int const*, unsigned int const*, unsigned int*)
    (__result=0x55b9dfc5dad8, __last=0x55b9dfc5daec, __first=0x55b9dfc5daf0)
    at /usr/include/c++/11.1.0/bits/stl_algobase.h:431
#2  std::__copy_move_a2<false, unsigned int const*, unsigned int*>(unsigned int const*, unsigned int const*, unsigned int*) (__result=0x55b9dfc5dad8, __last=0x55b9dfc5daec, __first=0x55b9dfc5daf0)
    at /usr/include/c++/11.1.0/bits/stl_algobase.h:495
#3  std::__copy_move_a1<false, unsigned int const*, unsigned int*>(unsigned int const*, unsigned int const*, unsigned int*) (__result=0x55b9dfc5dad8, __last=0x55b9dfc5daec, __first=0x55b9dfc5daf0)
    at /usr/include/c++/11.1.0/bits/stl_algobase.h:522
#4  std::__copy_move_a<false, unsigned int const*, unsigned int*>(unsigned int const*, unsigned int const*, unsigned int*) (__result=0x55b9dfc5dad8, __last=0x55b9dfc5daec, __first=0x55b9dfc5daf0)
    at /usr/include/c++/11.1.0/bits/stl_algobase.h:529
#5  std::copy<unsigned int const*, unsigned int*>(unsigned int const*, unsigned int const*, unsigned int*)
    (__result=0x55b9dfc5dad8, __last=0x55b9dfc5daec, __first=0x55b9dfc5daf0)
    at /usr/include/c++/11.1.0/bits/stl_algobase.h:620
#6  KWin::clamp_row(int, int, int, uint32_t const*, uint32_t*)
    (left=left@entry=2, width=width@entry=-1, right=right@entry=2, src=src@entry=0x55b9dfc5daf0, dest=0x55b9dfc5dad0)
    at /usr/src/debug/kwin-5.23.1/src/plugins/scenes/opengl/scene_opengl.cpp:1821
#7  0x00007fbe7e530bc3 in KWin::clamp (viewport=<optimized out>, image=...)
    at /usr/src/debug/kwin-5.23.1/src/plugins/scenes/opengl/scene_opengl.cpp:1850
#8  operator()(QRect const&, QRect const&, QPoint const&, bool) const
    (__closure=0x7ffe0d76c628, geo=..., partRect=..., position=..., rotated=<optimized out>)
    at /usr/src/debug/kwin-5.23.1/src/plugins/scenes/opengl/scene_opengl.cpp:1922
#9  0x00007fbe7e5312a5 in KWin::SceneOpenGLDecorationRenderer::render(QRegion const&) (this=0x7ffe0d76c6a0, region=...)
    at /usr/src/debug/kwin-5.23.1/src/plugins/scenes/opengl/scene_opengl.cpp:1942
#10 0x00007fbe8cb4accd in KWin::DecorationItem::preprocess() (this=0x55b9dfc7edb0)
    at /usr/src/debug/kwin-5.23.1/src/decorationitem.cpp:132
#11 0x00007fbe7e52b45b in KWin::OpenGLWindow::createRenderNode(KWin::Item*, KWin::OpenGLWindow::RenderContext*)
    (this=0x55b9dfeee0b0, item=0x55b9dfc7edb0, context=0x7ffe0d76cc60)
    at /usr/src/debug/kwin-5.23.1/src/plugins/scenes/opengl/scene_opengl.cpp:908
#12 0x00007fbe7e52b788 in KWin::OpenGLWindow::createRenderNode(KWin::Item*, KWin::OpenGLWindow::RenderContext*)
--Type <RET> for more, q to quit, c to continue without paging--
    (this=0x55b9dfeee0b0, item=<optimized out>, context=0x7ffe0d76cc60)
    at /usr/src/debug/kwin-5.23.1/src/plugins/scenes/opengl/scene_opengl.cpp:959
#13 0x00007fbe7e52bf8f in KWin::OpenGLWindow::performPaint(int, QRegion const&, KWin::WindowPaintData const&)
    (this=0x55b9dfeee0b0, mask=9, region=..., data=...)
    at /usr/src/debug/kwin-5.23.1/src/plugins/scenes/opengl/scene_opengl.cpp:1033
#14 0x00007fbe8c99331e in KWin::ContrastEffect::drawWindow(KWin::EffectWindow*, int, QRegion const&, KWin::WindowPaintData&) (this=0x55b9dfb710b0, w=<optimized out>, mask=9, region=..., data=...)
    at /usr/src/debug/kwin-5.23.1/src/effects/backgroundcontrast/contrast.cpp:457
#15 0x00007fbe8cb641fc in KWin::EffectsHandlerImpl::drawWindow(KWin::EffectWindow*, int, QRegion const&, KWin::WindowPaintData&) (this=0x55b9dfa30d10, w=<optimized out>, mask=<optimized out>, region=<optimized out>, data=<optimized out>)
    at /usr/src/debug/kwin-5.23.1/src/effects.cpp:469
#16 0x00007fbe8c90f7fe in KWin::BlurEffect::drawWindow(KWin::EffectWindow*, int, QRegion const&, KWin::WindowPaintData&) (this=0x55b9e02a8c40, w=<optimized out>, mask=9, region=..., data=...)
    at /usr/src/debug/kwin-5.23.1/src/effects/blur/blur.cpp:595
#17 0x00007fbe8cb641fc in KWin::EffectsHandlerImpl::drawWindow(KWin::EffectWindow*, int, QRegion const&, KWin::WindowPaintData&) (this=0x55b9dfa30d10, w=<optimized out>, mask=<optimized out>, region=<optimized out>, data=<optimized out>)
    at /usr/src/debug/kwin-5.23.1/src/effects.cpp:469
#18 0x00007fbe8cb64039 in KWin::EffectsHandlerImpl::paintWindow(KWin::EffectWindow*, int, QRegion const&, KWin::WindowPaintData&) (this=0x55b9dfa30d10, w=0x55b9dfeb1930, mask=9, region=<optimized out>, data=...)
    at /usr/src/debug/kwin-5.23.1/src/effects.cpp:432
#19 0x00007fbe8cb64039 in KWin::EffectsHandlerImpl::paintWindow(KWin::EffectWindow*, int, QRegion const&, KWin::WindowPaintData&) (this=0x55b9dfa30d10, w=0x55b9dfeb1930, mask=9, region=<optimized out>, data=...)
    at /usr/src/debug/kwin-5.23.1/src/effects.cpp:432
#20 0x00007fbe8cbf41ad in KWin::Scene::paintWindow(KWin::Scene::Window*, int, QRegion const&)
    (this=<optimized out>, w=0x55b9dfeee0b0, mask=9, _region=<optimized out>)
    at /usr/src/debug/kwin-5.23.1/src/scene.cpp:517
#21 0x00007fbe8cbf1c37 in KWin::Scene::paintSimpleScreen(int, QRegion const&)
    (this=<optimized out>, orig_mask=8, region=...) at /usr/src/debug/kwin-5.23.1/src/scene.cpp:441
#22 0x00007fbe8cb63dc9 in KWin::EffectsHandlerImpl::paintScreen(int, QRegion const&, KWin::ScreenPaintData&)
    (this=0x55b9dfa30d10, mask=<optimized out>, region=<optimized out>, data=<optimized out>)
    at /usr/src/debug/kwin-5.23.1/src/effects.cpp:389
#23 0x00007fbe8cb63dc9 in KWin::EffectsHandlerImpl::paintScreen(int, QRegion const&, KWin::ScreenPaintData&)
    (this=0x55b9dfa30d10, mask=<optimized out>, region=<optimized out>, data=<optimized out>)
--Type <RET> for more, q to quit, c to continue without paging--
    at /usr/src/debug/kwin-5.23.1/src/effects.cpp:389
#24 0x00007fbe8cbf3a94 in KWin::Scene::paintScreen(QRegion const&, QRegion const&, QRegion*, QRegion*, KWin::RenderLoop*, QMatrix4x4 const&)
    (this=this@entry=0x55b9df0bed20, damage=..., repaint=..., updateRegion=updateRegion@entry=0x7ffe0d76d4b0, validRegion=validRegion@entry=0x7ffe0d76d4b8, renderLoop=renderLoop@entry=0x55b9df910b90, projection=...)
    at /usr/src/debug/kwin-5.23.1/src/scene.cpp:217
#25 0x00007fbe7e52d6a2 in KWin::SceneOpenGL::paint(KWin::AbstractOutput*, QRegion const&, QList<KWin::Toplevel*> const&, KWin::RenderLoop*)
    (this=0x55b9df0bed20, output=0x55b9df9136e0, damage=..., toplevels=<optimized out>, renderLoop=0x55b9df910b90)
    at /usr/src/debug/kwin-5.23.1/src/plugins/scenes/opengl/scene_opengl.cpp:440
#26 0x00007fbe8cb28487 in KWin::Compositor::composite(KWin::RenderLoop*)
    (this=0x55b9df0e9ea0, renderLoop=0x55b9df910b90) at /usr/src/debug/kwin-5.23.1/src/composite.cpp:623
#27 0x00007fbe8b31b76b in  () at /usr/lib/libQt5Core.so.5
#28 0x00007fbe8cad8717 in KWin::RenderLoop::frameRequested(KWin::RenderLoop*)
    (this=<optimized out>, _t1=<optimized out>)
    at /usr/src/debug/build/src/kwin_autogen/EWIEGA46WW/moc_renderloop.cpp:206
#29 0x00007fbe8cbe0e08 in KWin::RenderLoopPrivate::dispatch() (this=0x55b9df912700)
    at /usr/src/debug/kwin-5.23.1/src/renderloop.cpp:148
#30 0x00007fbe8b31b76b in  () at /usr/lib/libQt5Core.so.5
#31 0x00007fbe8b31f73b in QTimer::timeout(QTimer::QPrivateSignal) () at /usr/lib/libQt5Core.so.5
#32 0x00007fbe8b31142f in QObject::event(QEvent*) () at /usr/lib/libQt5Core.so.5
#33 0x00007fbe8bfc1d62 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#34 0x00007fbe8b2e43ba in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#35 0x00007fbe8b33c35d in QTimerInfoList::activateTimers() () at /usr/lib/libQt5Core.so.5
#36 0x00007fbe8b33a839 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
    at /usr/lib/libQt5Core.so.5
#37 0x000055b9de020b6e in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
#38 0x00007fbe8b2e2d2c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#39 0x00007fbe8b2eb294 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#40 0x000055b9ddfb8be4 in main(int, char**) (argc=<optimized out>, argv=<optimized out>)
    at /usr/src/debug/kwin-5.23.1/src/main_wayland.cpp:745
(gdb)
Comment 3 Vlad Zahorodnii 2021-10-27 08:01:23 UTC

*** This bug has been marked as a duplicate of bug 441547 ***