The debugger has been attached to the first user's session, and breakpoint has been set in DrmPipeline::~DrmPipeline with the following commands to log the deletion's origin and pipeline's address:
commands
silent
p this
bt -full 10
cont &
end
Then I switched between two users' sessions until the first one has crashed. There are logs of both the successful case and the crash.
The behaviour in the crash is drastically different and we can see triple destruction of a DrmPipeline with the same address, then its attempted use which leads to a segmentation fault.
$1 = (KWin::DrmPipeline * const) 0x55e00b5987f0
#0 KWin::DrmPipeline::~DrmPipeline() (this=0x55e00b5987f0, __in_chrg=<optimized out>) at
/usr/include/c++/11.1.0/bits/atomic_base.h:479
#1 0x00007fa0e79eff0b in KWin::DrmGpu::updateOutputs() (this=this@entry=0x55e00a9f8470) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_gpu.cpp:286
output = @0x55e00b231a88: 0x55e00b2175f0
__for_range = @0x55e00a9f8508: {d = 0x55e00b231a70}
__for_begin = 0x55e00b231a88
__for_end = 0x55e00b231a90
resources = {d = <optimized out>}
lessees = <optimized out>
removedConnectors = {d = 0x55e00ab816e0}
connectedConnectors = {d = 0x55e00b399630}
connectors = {d = 0x7fa0ed061ba6 <std::chrono::_V2::steady_clock::now()+38>}
crtcs = {d = 0x579}
planes = {d = 0x989ea66534029c00}
config = {d = 0x30}
#2 0x00007fa0e79d6108 in KWin::DrmBackend::updateOutputs() (this=0x55e00aa12350) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_backend.cpp:347
gpu = 0x55e00a9f8470
it = 0x55e00aa63ad8
oldOutputs = {d = <optimized out>}
#3 0x00007fa0e79d73e7 in KWin::DrmBackend::reactivate() (this=0x55e00aa12350) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_backend.cpp:159
#4 KWin::DrmBackend::reactivate() (this=0x55e00aa12350) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_backend.cpp:142
#5 0x00007fa0ed7ee76b in () at /usr/lib/libQt5Core.so.5
#6 0x00007fa0f030c702 in KWin::Session::activeChanged(bool) (this=this@entry=0x55e00aa1b540, _t1=<optimized out>)
at /home/ash/kde/build/kwin/src/kwin_autogen/EWIEGA46WW/moc_session.cpp:150
_a = {0x0, 0x7ffc4c2f32cc}
#7 0x00007fa0f04462b3 in KWin::LogindSession::updateActive(bool) (active=<optimized out>, this=0x55e00aa1b540) at
/home/ash/kde/src/kwin/src/session_logind.cpp:303
active = {d = {data = {c = 1 '\001', uc = 1 '\001', s = 12545, sc = 1 '\001', us = 12545, i = 1278161153, u
= 1278161153, l = 140721586647297, ul = 140721586647297, b = true, d = 6.9525701590701728e-310, f = 45925380, real =
6.9525701590701728e-310, ll = 140721586647297, ull = 140721586647297, o = 0x7ffc4c2f3101, ptr = 0x7ffc4c2f3101, shared
= 0x7ffc4c2f3101}, type = 1, is_shared = 0, is_null = 0}}
#8 KWin::LogindSession::handlePropertiesChanged(QString const&, QMap<QString, QVariant> const&)
(this=this@entry=0x55e00aa1b540, interfaceName=<optimized out>, properties=<optimized out>) at
/home/ash/kde/src/kwin/src/session_logind.cpp:324
active = {d = {data = {c = 1 '\001', uc = 1 '\001', s = 12545, sc = 1 '\001', us = 12545, i = 1278161153, u
= 1278161153, l = 140721586647297, ul = 140721586647297, b = true, d = 6.9525701590701728e-310, f = 45925380, real =
6.9525701590701728e-310, ll = 140721586647297, ull = 140721586647297, o = 0x7ffc4c2f3101, ptr = 0x7ffc4c2f3101, shared
= 0x7ffc4c2f3101}, type = 1, is_shared = 0, is_null = 0}}
#9 0x00007fa0f032b344 in KWin::LogindSession::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)
(_c=QMetaObject::InvokeMetaMethod, _a=0x7ffc4c2f3460, _id=1, _o=0x55e00aa1b540) at
/home/ash/kde/build/kwin/src/kwin_autogen/EWIEGA46WW/moc_session_logind.cpp:88
_t = 0x55e00aa1b540
$5 = (KWin::DrmPipeline * const) 0x55e00b5a8f20
#0 KWin::DrmPipeline::~DrmPipeline() (this=0x55e00b5a8f20, __in_chrg=<optimized out>) at
/usr/include/c++/11.1.0/bits/atomic_base.h:479
#1 0x00007fa0e79eff0b in KWin::DrmGpu::updateOutputs() (this=this@entry=0x55e00a9f8470) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_gpu.cpp:286
output = @0x55e00b231a88: 0x55e00b2175f0
__for_range = @0x55e00a9f8508: {d = 0x55e00b231a70}
__for_begin = 0x55e00b231a88
__for_end = 0x55e00b231a90
resources = {d = <optimized out>}
lessees = <optimized out>
removedConnectors = {d = 0x55e00b35fe00}
connectedConnectors = {d = 0x55e00b4076c0}
connectors = {d = 0x7fa0ed061ba6 <std::chrono::_V2::steady_clock::now()+38>}
crtcs = {d = 0x5f0}
planes = {d = 0x989ea66534029c00}
config = {d = 0x30}
#2 0x00007fa0e79d6108 in KWin::DrmBackend::updateOutputs() (this=0x55e00aa12350) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_backend.cpp:347
gpu = 0x55e00a9f8470
it = 0x55e00aa63ad8
oldOutputs = {d = <optimized out>}
#3 0x00007fa0e79d73e7 in KWin::DrmBackend::reactivate() (this=0x55e00aa12350) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_backend.cpp:159
#4 KWin::DrmBackend::reactivate() (this=0x55e00aa12350) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_backend.cpp:142
#5 0x00007fa0ed7ee76b in () at /usr/lib/libQt5Core.so.5
#6 0x00007fa0f030c702 in KWin::Session::activeChanged(bool) (this=this@entry=0x55e00aa1b540, _t1=<optimized out>)
at /home/ash/kde/build/kwin/src/kwin_autogen/EWIEGA46WW/moc_session.cpp:150
_a = {0x0, 0x7ffc4c2f32cc}
#7 0x00007fa0f04462b3 in KWin::LogindSession::updateActive(bool) (active=<optimized out>, this=0x55e00aa1b540) at
/home/ash/kde/src/kwin/src/session_logind.cpp:303
active = {d = {data = {c = 1 '\001', uc = 1 '\001', s = 12545, sc = 1 '\001', us = 12545, i = 1278161153, u
= 1278161153, l = 140721586647297, ul = 140721586647297, b = true, d = 6.9525701590701728e-310, f = 45925380, real =
6.9525701590701728e-310, ll = 140721586647297, ull = 140721586647297, o = 0x7ffc4c2f3101, ptr = 0x7ffc4c2f3101, shared
= 0x7ffc4c2f3101}, type = 1, is_shared = 0, is_null = 0}}
#8 KWin::LogindSession::handlePropertiesChanged(QString const&, QMap<QString, QVariant> const&)
(this=this@entry=0x55e00aa1b540, interfaceName=<optimized out>, properties=<optimized out>) at
/home/ash/kde/src/kwin/src/session_logind.cpp:324
active = {d = {data = {c = 1 '\001', uc = 1 '\001', s = 12545, sc = 1 '\001', us = 12545, i = 1278161153, u
= 1278161153, l = 140721586647297, ul = 140721586647297, b = true, d = 6.9525701590701728e-310, f = 45925380, real =
6.9525701590701728e-310, ll = 140721586647297, ull = 140721586647297, o = 0x7ffc4c2f3101, ptr = 0x7ffc4c2f3101, shared
= 0x7ffc4c2f3101}, type = 1, is_shared = 0, is_null = 0}}
#9 0x00007fa0f032b344 in KWin::LogindSession::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)
(_c=QMetaObject::InvokeMetaMethod, _a=0x7ffc4c2f3460, _id=1, _o=0x55e00aa1b540) at
/home/ash/kde/build/kwin/src/kwin_autogen/EWIEGA46WW/moc_session_logind.cpp:88
_t = 0x55e00aa1b540
$6 = (KWin::DrmPipeline * const) 0x55e00b55a720
#0 KWin::DrmPipeline::~DrmPipeline() (this=0x55e00b55a720, __in_chrg=<optimized out>) at
/usr/include/c++/11.1.0/bits/atomic_base.h:479
#1 0x00007fa0e79ed99e in operator()(KWin::DrmCrtc*, KWin::DrmPlane*) const
(__closure=__closure@entry=0x7ffc4c2f2fb0, crtc=<optimized out>, primaryPlane=0x7ffc4c2f2ef8) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_gpu.cpp:373
pipeline = 0x55e00b55a720
planesLeft = {d = 0x55e00b3b2090}
allPipelines = {d = 0x55e00b5e0e50}
ret = {d = 0x7fa0ed8a0aa0 <QArrayData::shared_null>}
crtcsLeft = {d = 0x55e00aac52b0}
pipelines = {d = 0x7fa0ed8a0aa0 <QArrayData::shared_null>}
planes = {d = 0x55e00aa42650}
crtcs = {d = 0x55e00aad0d90}
connectors = {d = 0x55e00b525dd0}
connector = 0x55e00b211490
this = 0x55e00a9f8470
connector = <optimized out>
encoders = {d = <optimized out>}
recurse = {__this = 0x55e00bbb7190, __connector = 0x7ffc4c2f2fa8, __connectors = {d = 0x55e00aac52b0},
__crtcs = {d = 0x55e00b3b2090}, __planes = {d = 0x55e00b5e0e50}, __pipelines = {d = 0x55e00b525dd0}}
#2 0x00007fa0e79edf38 in KWin::DrmGpu::findWorkingCombination(QVector<KWin::DrmPipeline*> const&,
QVector<KWin::DrmConnector*>, QVector<KWin::DrmCrtc*>, QVector<KWin::DrmPlane*> const&)
(this=this@entry=0x55e00a9f8470, pipelines=..., connectors=..., crtcs=..., planes=...) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_gpu.cpp:384
workingPipelines = {d = 0x7fa0ed8a0aa0 <QArrayData::shared_null>}
plane = @0x55e00aa42668: 0x55e00aa3bc30
__for_range = @0x7ffc4c2f3088: {d = 0x55e00aa42650}
__for_begin = 0x55e00aa42668
__for_end = 0x55e00aa426b0
crtc = @0x55e00aad0da8: 0x55e00aa63980
__for_range = @0x7ffc4c2f30b0: {d = 0x55e00aad0d90}
__for_begin = 0x55e00aad0da8
__for_end = 0x55e00aad0dc0
encoder = {d = 0x55e00ab07840}
encoderId = @0x55e00b213b88: 94
__for_range = <synthetic pointer>: {d = <optimized out>}
__for_begin = 0x55e00b213b88
__for_end = 0x55e00b213b8c
connector = <optimized out>
encoders = {d = <optimized out>}
recurse = {__this = 0x55e00a9f8470, __connector = 0x55e00b211490, __connectors = {d = 0x55e00b525dd0},
__crtcs = {d = 0x55e00aad0d90}, __planes = {d = 0x55e00aa42650}, __pipelines = {d = 0x7fa0ed8a0aa0
<QArrayData::shared_null>}}
#3 0x00007fa0e79f014c in KWin::DrmGpu::updateOutputs() (this=this@entry=0x55e00a9f8470) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_gpu.cpp:307
resources = {d = <optimized out>}
lessees = <optimized out>
removedConnectors = {d = 0x55e00b35fe00}
connectedConnectors = {d = 0x55e00b4076c0}
connectors = {d = 0x55e00b4076c0}
crtcs = {d = 0x55e00aa42840}
planes = {d = 0x55e00aa42650}
config = {d = 0x30}
#4 0x00007fa0e79d6108 in KWin::DrmBackend::updateOutputs() (this=0x55e00aa12350) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_backend.cpp:347
gpu = 0x55e00a9f8470
it = 0x55e00aa63ad8
oldOutputs = {d = <optimized out>}
#5 0x00007fa0e79d73e7 in KWin::DrmBackend::reactivate() (this=0x55e00aa12350) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_backend.cpp:159
#6 KWin::DrmBackend::reactivate() (this=0x55e00aa12350) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_backend.cpp:142
#7 0x00007fa0ed7ee76b in () at /usr/lib/libQt5Core.so.5
#8 0x00007fa0f030c702 in KWin::Session::activeChanged(bool) (this=this@entry=0x55e00aa1b540, _t1=<optimized out>)
at /home/ash/kde/build/kwin/src/kwin_autogen/EWIEGA46WW/moc_session.cpp:150
_a = {0x0, 0x7ffc4c2f32cc}
#9 0x00007fa0f04462b3 in KWin::LogindSession::updateActive(bool) (active=<optimized out>, this=0x55e00aa1b540) at
/home/ash/kde/src/kwin/src/session_logind.cpp:303
active = {d = {data = {c = 1 '\001', uc = 1 '\001', s = 12545, sc = 1 '\001', us = 12545, i = 1278161153, u
= 1278161153, l = 140721586647297, ul = 140721586647297, b = true, d = 6.9525701590701728e-310, f = 45925380, real =
6.9525701590701728e-310, ll = 140721586647297, ull = 140721586647297, o = 0x7ffc4c2f3101, ptr = 0x7ffc4c2f3101, shared
= 0x7ffc4c2f3101}, type = 1, is_shared = 0, is_null = 0}}
$7 = (KWin::DrmPipeline * const) 0x55e00b55a720
#0 KWin::DrmPipeline::~DrmPipeline() (this=0x55e00b55a720, __in_chrg=<optimized out>) at
/usr/include/c++/11.1.0/bits/atomic_base.h:479
#1 0x00007fa0e79ed99e in operator()(KWin::DrmCrtc*, KWin::DrmPlane*) const
(__closure=__closure@entry=0x7ffc4c2f2fb0, crtc=<optimized out>, primaryPlane=0x7ffc4c2f2ef8) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_gpu.cpp:373
pipeline = 0x55e00b55a720
planesLeft = {d = 0x55e00b3305c0}
allPipelines = {d = 0x55e00b3ec070}
ret = {d = 0x7fa0ed8a0aa0 <QArrayData::shared_null>}
crtcsLeft = {d = 0x55e00b220500}
pipelines = {d = 0x7fa0ed8a0aa0 <QArrayData::shared_null>}
planes = {d = 0x55e00aa42650}
crtcs = {d = 0x55e00aad0d90}
connectors = {d = 0x55e00b525dd0}
connector = 0x55e00b211490
this = 0x55e00a9f8470
connector = <optimized out>
encoders = {d = <optimized out>}
recurse = {__this = 0x55e00bbb7190, __connector = 0x7ffc4c2f2fa8, __connectors = {d = 0x55e00b220500},
__crtcs = {d = 0x55e00b3305c0}, __planes = {d = 0x55e00b3ec070}, __pipelines = {d = 0x55e00b525dd0}}
#2 0x00007fa0e79edf38 in KWin::DrmGpu::findWorkingCombination(QVector<KWin::DrmPipeline*> const&,
QVector<KWin::DrmConnector*>, QVector<KWin::DrmCrtc*>, QVector<KWin::DrmPlane*> const&)
(this=this@entry=0x55e00a9f8470, pipelines=..., connectors=..., crtcs=..., planes=...) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_gpu.cpp:384
workingPipelines = {d = 0x7fa0ed8a0aa0 <QArrayData::shared_null>}
plane = @0x55e00aa42680: 0x55e00aa3be20
__for_range = @0x7ffc4c2f3088: {d = 0x55e00aa42650}
__for_begin = 0x55e00aa42680
__for_end = 0x55e00aa426b0
crtc = @0x55e00aad0db0: 0x55e00aa63d50
__for_range = @0x7ffc4c2f30b0: {d = 0x55e00aad0d90}
__for_begin = 0x55e00aad0db0
__for_end = 0x55e00aad0dc0
encoder = {d = 0x55e00ab07840}
encoderId = @0x55e00b213b88: 94
__for_range = <synthetic pointer>: {d = <optimized out>}
__for_begin = 0x55e00b213b88
__for_end = 0x55e00b213b8c
connector = <optimized out>
encoders = {d = <optimized out>}
recurse = {__this = 0x55e00a9f8470, __connector = 0x55e00b211490, __connectors = {d = 0x55e00b525dd0},
__crtcs = {d = 0x55e00aad0d90}, __planes = {d = 0x55e00aa42650}, __pipelines = {d = 0x7fa0ed8a0aa0
<QArrayData::shared_null>}}
#3 0x00007fa0e79f014c in KWin::DrmGpu::updateOutputs() (this=this@entry=0x55e00a9f8470) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_gpu.cpp:307
resources = {d = <optimized out>}
lessees = <optimized out>
removedConnectors = {d = 0x55e00b35fe00}
connectedConnectors = {d = 0x55e00b4076c0}
connectors = {d = 0x55e00b4076c0}
crtcs = {d = 0x55e00aa42840}
planes = {d = 0x55e00aa42650}
config = {d = 0x30}
#4 0x00007fa0e79d6108 in KWin::DrmBackend::updateOutputs() (this=0x55e00aa12350) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_backend.cpp:347
gpu = 0x55e00a9f8470
it = 0x55e00aa63ad8
oldOutputs = {d = <optimized out>}
#5 0x00007fa0e79d73e7 in KWin::DrmBackend::reactivate() (this=0x55e00aa12350) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_backend.cpp:159
#6 KWin::DrmBackend::reactivate() (this=0x55e00aa12350) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_backend.cpp:142
#7 0x00007fa0ed7ee76b in () at /usr/lib/libQt5Core.so.5
#8 0x00007fa0f030c702 in KWin::Session::activeChanged(bool) (this=this@entry=0x55e00aa1b540, _t1=<optimized out>)
at /home/ash/kde/build/kwin/src/kwin_autogen/EWIEGA46WW/moc_session.cpp:150
_a = {0x0, 0x7ffc4c2f32cc}
#9 0x00007fa0f04462b3 in KWin::LogindSession::updateActive(bool) (active=<optimized out>, this=0x55e00aa1b540) at
/home/ash/kde/src/kwin/src/session_logind.cpp:303
active = {d = {data = {c = 1 '\001', uc = 1 '\001', s = 12545, sc = 1 '\001', us = 12545, i = 1278161153, u
= 1278161153, l = 140721586647297, ul = 140721586647297, b = true, d = 6.9525701590701728e-310, f = 45925380, real =
6.9525701590701728e-310, ll = 140721586647297, ull = 140721586647297, o = 0x7ffc4c2f3101, ptr = 0x7ffc4c2f3101, shared
= 0x7ffc4c2f3101}, type = 1, is_shared = 0, is_null = 0}}
$8 = (KWin::DrmPipeline * const) 0x55e00b55a720
#0 KWin::DrmPipeline::~DrmPipeline() (this=0x55e00b55a720, __in_chrg=<optimized out>) at
/usr/include/c++/11.1.0/bits/atomic_base.h:479
#1 0x00007fa0e79ed99e in operator()(KWin::DrmCrtc*, KWin::DrmPlane*) const
(__closure=__closure@entry=0x7ffc4c2f2fb0, crtc=<optimized out>, primaryPlane=0x7ffc4c2f2ef8) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_gpu.cpp:373
pipeline = 0x55e00b55a720
planesLeft = {d = 0x55e00b621ee0}
allPipelines = {d = 0x55e00b5e0e50}
ret = {d = 0x7fa0ed8a0aa0 <QArrayData::shared_null>}
crtcsLeft = {d = 0x55e00b5a4f40}
pipelines = {d = 0x7fa0ed8a0aa0 <QArrayData::shared_null>}
planes = {d = 0x55e00aa42650}
crtcs = {d = 0x55e00aad0d90}
connectors = {d = 0x55e00b525dd0}
connector = 0x55e00b211490
this = 0x55e00a9f8470
connector = <optimized out>
encoders = {d = <optimized out>}
recurse = {__this = 0x55e00bbb7190, __connector = 0x7ffc4c2f2fa8, __connectors = {d = 0x55e00b5a4f40},
__crtcs = {d = 0x55e00b621ee0}, __planes = {d = 0x55e00b5e0e50}, __pipelines = {d = 0x55e00b525dd0}}
#2 0x00007fa0e79edf38 in KWin::DrmGpu::findWorkingCombination(QVector<KWin::DrmPipeline*> const&,
QVector<KWin::DrmConnector*>, QVector<KWin::DrmCrtc*>, QVector<KWin::DrmPlane*> const&)
(this=this@entry=0x55e00a9f8470, pipelines=..., connectors=..., crtcs=..., planes=...) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_gpu.cpp:384
workingPipelines = {d = 0x7fa0ed8a0aa0 <QArrayData::shared_null>}
plane = @0x55e00aa42698: 0x55e00aa3d6a0
__for_range = @0x7ffc4c2f3088: {d = 0x55e00aa42650}
__for_begin = 0x55e00aa42698
__for_end = 0x55e00aa426b0
crtc = @0x55e00aad0db8: 0x55e00aa64100
__for_range = @0x7ffc4c2f30b0: {d = 0x55e00aad0d90}
__for_begin = 0x55e00aad0db8
__for_end = 0x55e00aad0dc0
encoder = {d = 0x55e00ab07840}
encoderId = @0x55e00b213b88: 94
__for_range = <synthetic pointer>: {d = <optimized out>}
__for_begin = 0x55e00b213b88
__for_end = 0x55e00b213b8c
connector = <optimized out>
encoders = {d = <optimized out>}
recurse = {__this = 0x55e00a9f8470, __connector = 0x55e00b211490, __connectors = {d = 0x55e00b525dd0},
__crtcs = {d = 0x55e00aad0d90}, __planes = {d = 0x55e00aa42650}, __pipelines = {d = 0x7fa0ed8a0aa0
<QArrayData::shared_null>}}
#3 0x00007fa0e79f014c in KWin::DrmGpu::updateOutputs() (this=this@entry=0x55e00a9f8470) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_gpu.cpp:307
resources = {d = <optimized out>}
lessees = <optimized out>
removedConnectors = {d = 0x55e00b35fe00}
connectedConnectors = {d = 0x55e00b4076c0}
connectors = {d = 0x55e00b4076c0}
crtcs = {d = 0x55e00aa42840}
planes = {d = 0x55e00aa42650}
config = {d = 0x30}
#4 0x00007fa0e79d6108 in KWin::DrmBackend::updateOutputs() (this=0x55e00aa12350) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_backend.cpp:347
gpu = 0x55e00a9f8470
it = 0x55e00aa63ad8
oldOutputs = {d = <optimized out>}
#5 0x00007fa0e79d73e7 in KWin::DrmBackend::reactivate() (this=0x55e00aa12350) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_backend.cpp:159
#6 KWin::DrmBackend::reactivate() (this=0x55e00aa12350) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_backend.cpp:142
#7 0x00007fa0ed7ee76b in () at /usr/lib/libQt5Core.so.5
#8 0x00007fa0f030c702 in KWin::Session::activeChanged(bool) (this=this@entry=0x55e00aa1b540, _t1=<optimized out>)
at /home/ash/kde/build/kwin/src/kwin_autogen/EWIEGA46WW/moc_session.cpp:150
_a = {0x0, 0x7ffc4c2f32cc}
#9 0x00007fa0f04462b3 in KWin::LogindSession::updateActive(bool) (active=<optimized out>, this=0x55e00aa1b540) at
/home/ash/kde/src/kwin/src/session_logind.cpp:303
active = {d = {data = {c = 1 '\001', uc = 1 '\001', s = 12545, sc = 1 '\001', us = 12545, i = 1278161153, u
= 1278161153, l = 140721586647297, ul = 140721586647297, b = true, d = 6.9525701590701728e-310, f = 45925380, real =
6.9525701590701728e-310, ll = 140721586647297, ull = 140721586647297, o = 0x7ffc4c2f3101, ptr = 0x7ffc4c2f3101, shared
= 0x7ffc4c2f3101}, type = 1, is_shared = 0, is_null = 0}}
Thread 1 "kwin_wayland" received signal SIGSEGV, Segmentation fault.
0x00007fa0e79f7f70 in QVector<KWin::DrmObject::Property*>::operator[] (i=2, this=<optimized out>) at
/usr/include/qt/QtCore/qvector.h:454
454 return d->begin()[i]; }
#0 0x00007fa0e79f7f70 in QVector<KWin::DrmObject::Property*>::operator[](int) const (i=2, this=<optimized out>) at
/usr/include/qt/QtCore/qvector.h:454
vrrProp = <optimized out>
vrr = <optimized out>
#1 KWin::DrmObject::getProp<KWin::DrmCrtc::PropertyIndex>(KWin::DrmCrtc::PropertyIndex) const
(propIndex=KWin::DrmCrtc::PropertyIndex::VrrEnabled, this=<optimized out>) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_object.h:170
vrrProp = <optimized out>
vrr = <optimized out>
#2 KWin::DrmPipeline::setSyncMode(KWin::RenderLoopPrivate::SyncMode) (this=0x55e00b55a720,
syncMode=KWin::RenderLoopPrivate::SyncMode::Fixed) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_pipeline.cpp:450
vrrProp = <optimized out>
vrr = <optimized out>
#3 0x00007fa0e79e4ba5 in KWin::DrmOutput::present(QSharedPointer<KWin::DrmBuffer> const&, QRegion)
(this=this@entry=0x55e00b2175f0, buffer=..., damagedRegion=...) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_output.cpp:391
renderLoopPrivate = <optimized out>
#4 0x00007fa0e79ff58f in KWin::EglGbmBackend::endFrame(KWin::AbstractOutput*, QRegion const&, QRegion const&)
(this=0x7ffc4c2f2f98, drmOutput=<optimized out>, renderedRegion=<optimized out>, damagedRegion=...)
at /home/ash/kde/src/kwin/src/plugins/platforms/drm/egl_gbm_backend.cpp:589
output =
@0x55e00b219520: {output = 0x55e00b2175f0, old = {shadowBuffer = {value = 0x0, d = 0x0}, gbmSurface = {value =
0x0, d = 0x0}, bufferAge = 0, damageJournal = {m_log = {<QListSpecialMethods<QRegion>> = {<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 = 0x7fa0ed8a15b0
<QListData::shared_null>}, d = 0x7fa0ed8a15b0 <QListData::shared_null>}}, m_capacity = 10}, importMode =
KWin::EglGbmBackend::ImportMode::Dmabuf, importSwapchain = {value = 0x0, d = 0x0}}, current = {shadowBuffer = {value =
0x0, d = 0x0}, gbmSurface = {value = 0x55e00b2102e0, d = 0x55e00b2102d0}, bufferAge = 3, damageJournal = {m_log =
{<QListSpecialMethods<QRegion>> = {<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 = 0x55e00b57ed50}, d = 0x55e00b57ed50}}, m_capacity = 10}, importMode =
KWin::EglGbmBackend::ImportMode::Dmabuf, importSwapchain = {value = 0x0, d = 0x0}}, surfaceInterface = 0x0}
dirty = {d = 0x7fa0e001ec80, static shared_empty = {ref = {atomic = {_q_value = {<std::__atomic_base<int>>
= {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, qt_rgn = 0x7fa0ee130ea0}}
buffer = {value = 0x55e00b4338f0, d = 0x55e00b4338e0}
#5 0x00007fa0e5e7173e in KWin::SceneOpenGL::paint(KWin::AbstractOutput*, QRegion const&, QList<KWin::Toplevel*>
const&, KWin::RenderLoop*) (this=
0x55e00ac15110, output=0x55e00b2175f0, damage=<optimized out>, toplevels=<optimized out>, renderLoop=<optimized
out>) at /home/ash/kde/src/kwin/src/plugins/scenes/opengl/scene_opengl.cpp:462
fullscreenSurface = 0x7ffc4c2f31e0
directScanout = <optimized out>
update = {d = 0x7fa0e001ec80}
valid = {d = 0x55e00b585950}
repaint = {d = 0x55e00b4b32f0}
geo = {x1 = 0, y1 = 0, x2 = 1919, y2 = 1079}
scaling = <optimized out>
status = <optimized out>
#6 0x00007fa0f035ab09 in KWin::Compositor::composite(KWin::RenderLoop*) (this=0x55e00ab33480,
renderLoop=0x55e00b20d260) at /home/ash/kde/src/kwin/src/composite.cpp:619
output = @0x55e00ab93770: 0x55e00b2175f0
_duration = {d = <optimized out>}
windows =
{<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 = 0x55e00ab8db40}, d = 0x55e00ab8db40}}
repaints = {d = 0x7fa0e001e770}
#7 0x00007fa0ed7ee76b in () at /usr/lib/libQt5Core.so.5
#8 0x00007fa0f030fe92 in KWin::RenderLoop::frameRequested(KWin::RenderLoop*) (this=<optimized out>, _t1=<optimized
out>) at /home/ash/kde/build/kwin/src/kwin_autogen/EWIEGA46WW/moc_renderloop.cpp:206
_a = {0x0, 0x7ffc4c2f33d8}
#9 0x00007fa0f0401de3 in KWin::RenderLoopPrivate::dispatch() (this=0x55e00b209f90) at
/home/ash/kde/src/kwin/src/renderloop.cpp:148