Bug 436095

Summary: crash on display sleep (maybe disconnect?)
Product: [Plasma] kwin Reporter: Harald Sitter <sitter>
Component: wayland-genericAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: alois1, nate, sonichedgehog_hyperblast00
Priority: NOR    
Version: git master   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In: 5.22.0
Attachments: trace

Description Harald Sitter 2021-04-23 14:12:34 UTC
Created attachment 137830 [details]
trace

SUMMARY
I was switching my display from DP to HDMI port, to work on a different machine, that may or may not have caused the display to completely disconnect from my main machine. Upon switching back to the DP port kwin had crashed and taken down X11 support along with it (x11 apps wouldn't even start anymore). This may also have to do with session locking. It may also have only been happening upon activating the port again as my journal has the desktop portal detecting the display again, shortly before kwin went down

Apr 23 15:54:31 ajax xdg-desktop-portal-kde[2081]: xdp-kde-wayland-integration: Adding output:
Apr 23 15:54:31 ajax xdg-desktop-portal-kde[2081]: xdp-kde-wayland-integration:     manufacturer:  "LG Electronics"
Apr 23 15:54:31 ajax xdg-desktop-portal-kde[2081]: xdp-kde-wayland-integration:     model:  "LG HDR 4K/477914"
Apr 23 15:54:31 ajax xdg-desktop-portal-kde[2081]: xdp-kde-wayland-integration:     resolution:  QSize(3840, 2160)
...
Apr 23 15:56:14 ajax kernel: kwin_wayland[1608]: segfault at 0 ip 00007f1459fd13de sp 00007ffc2ec35520 error 4 in libkwin.so.5.21.80[7f1459eec000+218000]

SOFTWARE/OS VERSIONS
Operating System: KDE neon Unstable Edition
KDE Plasma Version: 5.21.80
KDE Frameworks Version: 5.82.0
Qt Version: 5.15.2
Kernel Version: 5.8.0-50-generic (64-bit)
Graphics Platform: Wayland
Processors: 12 × AMD Ryzen 5 3600X 6-Core Processor
Memory: 31,3 GiB of RAM
Graphics Processor: AMD Radeon RX 5700 XT

ADDITIONAL INFORMATION


#0  0x00007f1459fd13de in std::__atomic_base<int>::load(std::memory_order) const (__m=std::memory_order_relaxed, this=0x0) at /usr/include/c++/9/bits/atomic_base.h:413
        count = <optimized out>
        screen = 0
        c = 0x0
        current = @0x7f1458636990: {<QMap<KWin::Group*, KWin::Layer>> = {d = 0x0}, <No data fields>}
        mLayer = <optimized out>
        l = KWin::FirstLayer
        it = {i = 0x55951b2f7208}
        end = {i = 0x55951b2f7278}
        layer = {{<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}}
        minimum_layer = {d = 0x7f1458636978 <qt_array+24>}
        stacking = {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x55951a788c48}, d = 0x55951a788c48}}
#1  QAtomicOps<int>::loadRelaxed<int>(std::atomic<int> const&) (_q_value=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic_cxx11.h:239
        count = <optimized out>
        screen = 0
        c = 0x0
        current = @0x7f1458636990: {<QMap<KWin::Group*, KWin::Layer>> = {d = 0x0}, <No data fields>}
        mLayer = <optimized out>
        l = KWin::FirstLayer
        it = {i = 0x55951b2f7208}
        end = {i = 0x55951b2f7278}
        layer = {{<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}}
        minimum_layer = {d = 0x7f1458636978 <qt_array+24>}
        stacking = {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x55951a788c48}, d = 0x55951a788c48}}
#2  QBasicAtomicInteger<int>::loadRelaxed() const (this=0x0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:107
        count = <optimized out>
        screen = 0
        c = 0x0
        current = @0x7f1458636990: {<QMap<KWin::Group*, KWin::Layer>> = {d = 0x0}, <No data fields>}
        mLayer = <optimized out>
        l = KWin::FirstLayer
        it = {i = 0x55951b2f7208}
        end = {i = 0x55951b2f7278}
        layer = {{<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}}
        minimum_layer = {d = 0x7f1458636978 <qt_array+24>}
        stacking = {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x55951a788c48}, d = 0x55951a788c48}}
#3  QtPrivate::RefCount::isShared() const (this=0x0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qrefcount.h:101
        count = <optimized out>
        screen = 0
        c = 0x0
        current = @0x7f1458636990: {<QMap<KWin::Group*, KWin::Layer>> = {d = 0x0}, <No data fields>}
        mLayer = <optimized out>
        l = KWin::FirstLayer
        it = {i = 0x55951b2f7208}
        end = {i = 0x55951b2f7278}
        layer = {{<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}}
        minimum_layer = {d = 0x7f1458636978 <qt_array+24>}
        stacking = {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x55951a788c48}, d = 0x55951a788c48}}
#4  QMap<KWin::Group*, KWin::Layer>::detach() (this=0x7f1458636990 <qt_array+48>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:357
        screen = 0
        c = 0x0
        current = @0x7f1458636990: {<QMap<KWin::Group*, KWin::Layer>> = {d = 0x0}, <No data fields>}
        mLayer = <optimized out>
        l = KWin::FirstLayer
        it = {i = 0x55951b2f7208}
        end = {i = 0x55951b2f7278}
        layer = {{<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}}
        minimum_layer = {d = 0x7f1458636978 <qt_array+24>}
        stacking = {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x55951a788c48}, d = 0x55951a788c48}}
#5  QMap<KWin::Group*, KWin::Layer>::find(KWin::Group* const&) (akey=<optimized out>, this=0x7f1458636990 <qt_array+48>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:861
        screen = 0
        c = 0x0
        current = @0x7f1458636990: {<QMap<KWin::Group*, KWin::Layer>> = {d = 0x0}, <No data fields>}
        mLayer = <optimized out>
        l = KWin::FirstLayer
        it = {i = 0x55951b2f7208}
        end = {i = 0x55951b2f7278}
        layer = {{<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}}
        minimum_layer = {d = 0x7f1458636978 <qt_array+24>}
        stacking = {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x55951a788c48}, d = 0x55951a788c48}}
#6  KWin::Workspace::constrainedStackingOrder() (this=this@entry=0x559519354a00) at ./src/layers.cpp:503
        screen = 0
        c = 0x0
        current = @0x7f1458636990: {<QMap<KWin::Group*, KWin::Layer>> = {d = 0x0}, <No data fields>}
        mLayer = <optimized out>
        l = KWin::FirstLayer
        it = {i = 0x55951b2f7208}
        end = {i = 0x55951b2f7278}
        layer = {{<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}, {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f1458637490 <QListData::shared_null>}, d = 0x7f1458637490 <QListData::shared_null>}}}
        minimum_layer = {d = 0x7f1458636978 <qt_array+24>}
        stacking = {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x55951a788c48}, d = 0x55951a788c48}}
#7  0x00007f1459fd1d68 in KWin::Workspace::updateStackingOrder(bool) (propagate_new_clients=false, this=0x559519354a00) at ./src/layers.cpp:110
        new_stacking_order = {<QListSpecialMethods<KWin::Toplevel*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x55951a788c48}, d = 0x55951a788c48}}
        changed = <optimized out>
#8  KWin::Workspace::updateStackingOrder(bool) (this=0x559519354a00, propagate_new_clients=propagate_new_clients@entry=false) at ./src/layers.cpp:103
#9  0x00007f145a0b62eb in KWin::X11Client::setFrameGeometry(QRect const&, KWin::AbstractClient::ForceGeometry_t) (this=0x55951a788970, rect=..., force=KWin::AbstractClient::NormalGeometrySet) at ./src/workspace.h:787
        frameGeometry = {x1 = -1, y1 = -1, x2 = -1, y2 = 64}
        oldBufferGeometry = {x1 = 0, y1 = 0, x2 = 1693, y2 = 970}
        oldFrameGeometry = {x1 = 0, y1 = 0, x2 = 1693, y2 = 970}
        oldClientGeometry = {x1 = 0, y1 = 29, x2 = 1693, y2 = 966}
#10 0x00007f1459f316c5 in KWin::AbstractClient::checkWorkspacePosition(QRect, int, QRect) (this=<optimized out>, oldGeometry=..., oldDesktop=<optimized out>, oldDesktop@entry=-2, oldClientGeometry=...) at ./src/abstract_client.cpp:3529
        border = {0, 29, <optimized out>, <optimized out>}
        oldScreenArea = <optimized out>
        oldGeomTall = {x1 = 0, y1 = 0, x2 = 1693, y2 = 1079}
        oldGeomWide = {x1 = 0, y1 = 0, x2 = 1919, y2 = 970}
        oldTopMax = 0
        oldRightMax = 1920
        oldBottomMax = 1036
        oldLeftMax = 0
        screenArea = {x1 = 0, y1 = 0, x2 = -1, y2 = -1}
        topMax = 0
        rightMax = 0
        bottomMax = 0
        leftMax = 0
        newGeom = {x1 = -1, y1 = -1, x2 = -1, y2 = 64}
        newClientGeom = {x1 = <optimized out>, y1 = 29, x2 = <optimized out>, y2 = <optimized out>}
        newGeomTall = {x1 = 0, y1 = 0, x2 = 1693, y2 = -1}
        newGeomWide = {x1 = 0, y1 = 0, x2 = -1, y2 = 970}
        moveAreaFunc = (QRegion (KWin::Workspace::*)(const KWin::Workspace * const, int, QFlags<KWin::StrutArea>)) 0x7f145a099cc0 <KWin::Workspace::previousRestrictedMoveArea(int, QFlags<KWin::StrutArea>) const>
        keep = {<optimized out>, <optimized out>, false, <optimized out>}
        save = <optimized out>
        padding = {<optimized out>, 0, 0, 0}
#11 0x00007f145a09b64c in KWin::Workspace::updateClientArea(bool) (this=this@entry=0x559519354a00, force=force@entry=false) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qrect.h:60
        it = {i = 0x55951b444488}
        s = <optimized out>
        nscreens = <optimized out>
        numberOfDesktops = 1
        new_wareas = {d = 0x55951a3b5c90}
        new_rmoveareas = {d = 0x55951bb8eb50}
        new_sareas = {d = 0x55951a92c400}
        screens = {d = 0x7f14586369c0 <QArrayData::shared_null>}
        desktopArea = {x1 = 0, y1 = 0, x2 = -1, y2 = -1}
        changed = <optimized out>
#12 0x00007f145a09cd5b in KWin::Workspace::updateClientArea() (this=this@entry=0x559519354a00) at ./src/workspace.cpp:2243
#13 0x00007f145a09dc67 in KWin::Workspace::desktopResized() (this=0x559519354a00) at ./src/workspace.cpp:1980
        geom = {x1 = 0, y1 = 0, x2 = -1, y2 = -1}
#14 0x00007f145857f6fe in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffc2ec35ae0, r=0x559519354a00, this=0x559519cea610) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
        obj = std::unique_ptr<QtPrivate::QSlotObjectBase> = {get() = 0x559519cea610}
        receiver = 0x559519354a00
        td = <optimized out>
        receiverInSameThread = <optimized out>
        senderData = {previous = 0x0, receiver = 0x559519354a00, sender = 0x5595193d0a50, signal = 4}
        c = 0x559519cea7f0
        connections = {d = 0x5595194a4230}
        list = <optimized out>
        inSenderThread = true
        highestConnectionId = 1547
        signalVector = 0x559519c750d0
        currentThreadId = 0x7f1452cf8300
        sp = <optimized out>
        signal_spy_set = 0x0
        empty_argv = {0x0}
        senderDeleted = false
#15 doActivate<false>(QObject*, int, void**) (sender=0x5595193d0a50, signal_index=4, argv=0x7ffc2ec35ae0) at kernel/qobject.cpp:3886
        obj = std::unique_ptr<QtPrivate::QSlotObjectBase> = {get() = 0x559519cea610}
        receiver = 0x559519354a00
        td = <optimized out>
        receiverInSameThread = <optimized out>
        senderData = {previous = 0x0, receiver = 0x559519354a00, sender = 0x5595193d0a50, signal = 4}
        c = 0x559519cea7f0
        connections = {d = 0x5595194a4230}
        list = <optimized out>
        inSenderThread = true
        highestConnectionId = 1547
        signalVector = 0x559519c750d0
        currentThreadId = 0x7f1452cf8300
        sp = <optimized out>
        signal_spy_set = 0x0
        empty_argv = {0x0}
        senderDeleted = false
#16 0x00007f145857f6fe in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffc2ec35bc0, r=0x5595193d0a50, this=0x55951931b7a0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
        obj = std::unique_ptr<QtPrivate::QSlotObjectBase> = {get() = 0x55951931b7a0}
        receiver = 0x5595193d0a50
        td = <optimized out>
        receiverInSameThread = <optimized out>
        senderData = {previous = 0x0, receiver = 0x5595193d0a50, sender = 0x559519347920, signal = 3}
        c = 0x5595194a50a0
        connections = {d = 0x559519361610}
        list = <optimized out>
        inSenderThread = true
        highestConnectionId = 719
        signalVector = 0x5595193631b0
        currentThreadId = 0x7f1452cf8300
        sp = <optimized out>
        signal_spy_set = 0x0
        empty_argv = {0x0}
        senderDeleted = false
#17 doActivate<false>(QObject*, int, void**) (sender=0x559519347920, signal_index=3, argv=0x7ffc2ec35bc0) at kernel/qobject.cpp:3886
        obj = std::unique_ptr<QtPrivate::QSlotObjectBase> = {get() = 0x55951931b7a0}
        receiver = 0x5595193d0a50
        td = <optimized out>
        receiverInSameThread = <optimized out>
        senderData = {previous = 0x0, receiver = 0x5595193d0a50, sender = 0x559519347920, signal = 3}
        c = 0x5595194a50a0
        connections = {d = 0x559519361610}
        list = <optimized out>
        inSenderThread = true
        highestConnectionId = 719
        signalVector = 0x5595193631b0
        currentThreadId = 0x7f1452cf8300
        sp = <optimized out>
        signal_spy_set = 0x0
        empty_argv = {0x0}
        senderDeleted = false
#18 0x00007f1458578ac7 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x559519347920, m=m@entry=0x7f145a1c63e0 <KWin::Platform::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3946
#19 0x00007f1459f01ea4 in KWin::Platform::screensQueried() (this=this@entry=0x559519347920) at ./obj-x86_64-linux-gnu/src/kwin_autogen/EWIEGA46WW/moc_platform.cpp:348
#20 0x00007f14517be598 in KWin::DrmBackend::updateOutputs() (this=0x559519347920) at ./src/plugins/platforms/drm/drm_backend.cpp:321
        oldOutputs = {d = 0x559519374de0}
#21 KWin::DrmBackend::updateOutputs() (this=0x559519347920) at ./src/plugins/platforms/drm/drm_backend.cpp:305
#22 0x00007f14517c042c in KWin::DrmBackend::handleUdevEvent() (this=0x559519347920) at ./src/plugins/platforms/drm/drm_backend.cpp:280
        device = std::unique_ptr<KWin::UdevDevice> = {get() = 0x55951bba3880}
        drm = true
#23 0x00007f145857f6fe in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffc2ec35dd0, r=0x559519347920, this=0x559519376c60) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
        obj = std::unique_ptr<QtPrivate::QSlotObjectBase> = {get() = 0x559519376c60}
        receiver = 0x559519347920
        td = <optimized out>
        receiverInSameThread = <optimized out>
        senderData = {previous = 0x0, receiver = 0x559519347920, sender = 0x55951936c180, signal = 3}
        c = 0x5595193761f0
        connections = {d = 0x559519376cf0}
        list = <optimized out>
        inSenderThread = true
        highestConnectionId = 1
        signalVector = 0x559519372f70
        currentThreadId = 0x7f1452cf8300
        sp = <optimized out>
        signal_spy_set = 0x0
        empty_argv = {0x0}
        senderDeleted = false
#24 doActivate<false>(QObject*, int, void**) (sender=0x55951936c180, signal_index=3, argv=0x7ffc2ec35dd0) at kernel/qobject.cpp:3886
        obj = std::unique_ptr<QtPrivate::QSlotObjectBase> = {get() = 0x559519376c60}
        receiver = 0x559519347920
        td = <optimized out>
        receiverInSameThread = <optimized out>
        senderData = {previous = 0x0, receiver = 0x559519347920, sender = 0x55951936c180, signal = 3}
        c = 0x5595193761f0
        connections = {d = 0x559519376cf0}
        list = <optimized out>
        inSenderThread = true
        highestConnectionId = 1
        signalVector = 0x559519372f70
        currentThreadId = 0x7f1452cf8300
        sp = <optimized out>
        signal_spy_set = 0x0
        empty_argv = {0x0}
        senderDeleted = false
#25 0x00007f1458578ac7 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x55951936c180, m=m@entry=0x7f14587e2b40 <QSocketNotifier::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffc2ec35dd0) at kernel/qobject.cpp:3946
#26 0x00007f1458583773 in QSocketNotifier::activated(QSocketDescriptor, QSocketNotifier::Type, QSocketNotifier::QPrivateSignal) (this=this@entry=0x55951936c180, _t1=..., _t2=<optimized out>, _t3=...) at .moc/moc_qsocketnotifier.cpp:178
        _a = {0x0, 0x7ffc2ec35dcc, 0x7ffc2ec35dc8, 0x7ffc2ec35dc7}
#27 0x00007f1458583f13 in QSocketNotifier::event(QEvent*) (this=0x55951936c180, e=0x7ffc2ec360a0) at kernel/qsocketnotifier.cpp:302
        d = 0x559519376270
#28 0x00007f14593c1dc3 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x559519305300, receiver=receiver@entry=0x55951936c180, e=e@entry=0x7ffc2ec360a0) at kernel/qapplication.cpp:3632
        consumed = false
        filtered = false
#29 0x00007f14593cabb8 in QApplication::notify(QObject*, QEvent*) (this=0x7ffc2ec364b0, receiver=0x55951936c180, e=0x7ffc2ec360a0) at kernel/qapplication.cpp:3156
        w = <optimized out>
        wheel = <optimized out>
        spontaneous = <optimized out>
        phase = <optimized out>
        d = 0x559519305300
        res = false
#30 0x00007f14585486da in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55951936c180, event=0x7ffc2ec360a0) at ../../include/QtCore/5.15.2/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:325
        selfRequired = true
        result = false
        cbdata = {0x55951936c180, 0x7ffc2ec360a0, 0x7ffc2ec3604f}
        d = <optimized out>
        threadData = 0x5595192dd520
        scopeLevelCounter = {threadData = 0x5595192dd520}
#31 0x00007f14585a020b in QEventDispatcherUNIXPrivate::activateSocketNotifiers() (this=0x5595193139c0) at kernel/qeventdispatcher_unix.cpp:304
        notifier = 0x55951936c180
        n_activated = 0
        event = {_vptr.QEvent = 0x7f14587e24b0 <vtable for QEvent+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7f1458713fa0 <qt_meta_stringdata_QEvent>, data = 0x7f14587139e0 <qt_meta_data_QEvent>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}, d = 0x0, t = 50, posted = 0, spont = 0, m_accept = 1, reserved = 806}
#32 0x00007f14585a066b in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at kernel/qeventdispatcher_unix.cpp:511
        d = 0x5595193139c0
        threadData = <optimized out>
        include_timers = <optimized out>
        canWait = <optimized out>
        tm = <optimized out>
        wait_tm = {tv_sec = 0, tv_nsec = 0}
        nevents = 0
#33 0x00005595175e48d1 in  ()
#34 0x00007f14585471eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffc2ec36230, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
        d = 0x559519321c70
        threadData = <optimized out>
        locker = {val = 94098861019000}
        app = <optimized out>
#35 0x00007f145854f394 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
        threadData = 0x5595192dd520
        eventLoop = {<QObject> = {_vptr.QObject = 0x7f14587e2268 <vtable for QEventLoop+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7f1458718640 <qt_meta_stringdata_QObject>, data = 0x7f1458718520 <qt_meta_data_QObject>, static_metacall = 0x7f145857dd40 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x559519321c70}, static staticQtMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7f145871b5e0 <qt_meta_stringdata_Qt>, data = 0x7f1458718760 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7f14587d9ae0 <QObject::staticMetaObject>}, stringdata = 0x7f1458712e60 <qt_meta_stringdata_QEventLoop>, data = 0x7f1458712e00 <qt_meta_data_QEventLoop>, static_metacall = 0x7f1458546f00 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}
        returnCode = <optimized out>
#36 0x0000559517571281 in  ()
#37 0x00007f1457ccd0b3 in __libc_start_main (main=0x55951756f370, argc=5, argv=0x7ffc2ec36768, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffc2ec36758) at ../csu/libc-start.c:308
        result = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {94098830543248, -7734513140434757822, 94098830072576, 140721093044064, 0, 0, 7732998052311177026, 7674647093239453506}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x5, 0x7ffc2ec36768}, data = {prev = 0x0, cleanup = 0x0, canceltype = 5}}}
        not_first_call = <optimized out>
#38 0x0000559517571b2e in  ()
quit
Comment 1 Harald Sitter 2021-04-23 14:15:46 UTC
Super reproducible by turning off the display and turning it on again, actually.
Comment 2 Vlad Zahorodnii 2021-04-23 16:39:18 UTC
#6  KWin::Workspace::constrainedStackingOrder() (this=this@entry=0x559519354a00) at ./src/layers.cpp:503
        screen = 0
        c = 0x0
        current = @0x7f1458636990: {<QMap<KWin::Group*, KWin::Layer>> = {d = 0x0}, <No data fields>}

this looks odd, the d pointer of a QMap cannot be nullptr, can it?
Comment 3 Alois Wohlschlager 2021-04-24 08:53:40 UTC
Looks like the crash supposedly fixed in commit 618c330ca80d525f6666f76c17cc4568ba5675fe, was that fix incomplete?
Comment 4 Vlad Zahorodnii 2021-04-26 06:55:50 UTC
No, it looks like a different issue. Harald runs kwin_wayland from git master.
Comment 5 Harald Sitter 2021-04-26 10:44:01 UTC
From only looking at the code I'd say there is no bounds check on the minimum_layer[] access, meaning it will sail right past it in a Release build and get garbage back if the screen is out of bounds (which conceivably it can be since I would have no screens at some point when it is powered off). IOW I believe there needs to be some sort of skip condition if screen<0 || screen >= minimum_layer.size() to not access out of bounds maps.
Comment 6 Vlad Zahorodnii 2021-04-26 12:19:25 UTC
That might be the case. If not all clients have processed the screen layout change and we try to update the stacking order, minimum_layer can be accessed beyond valid range.
Comment 7 Vlad Zahorodnii 2021-05-12 11:51:08 UTC
Git commit eef97904b61921753ce1ec1dbfa732d984de73c7 by Vlad Zahorodnii.
Committed on 12/05/2021 at 11:50.
Pushed by vladz into branch 'master'.

Simplify Workspace::constrainedStackingOrder()

Workspace::constrainedStackingOrder() is a constant source of issues.
This change replaces the current logic that builds the stacking order to
hopefully make constrainedStackingOrder() less crashy.

With the new version, constrainedStackingOrder() doesn't perform layer
caching. On the other hand, it's quite rare to see apps in the wild that
have more than just 1 or 2 members in the window group.

M  +46   -26   src/layers.cpp

https://invent.kde.org/plasma/kwin/commit/eef97904b61921753ce1ec1dbfa732d984de73c7