https://bugs.kde.org/show_bug.cgi?id=438789
Bug ID: 438789 Summary: kwin_wayland crashed in KWin::DrmGpu::updateOutputs while un/re-plugging monitor Product: kwin Version: 5.22.0 Platform: openSUSE RPMs OS: Linux Status: REPORTED Severity: normal Priority: NOR Component: platform-drm Assignee: kwin-bugs-n...@kde.org Reporter: jirisl...@gmail.com Target Milestone: --- SUMMARY When I unplugged and replugged an external monitor the following crash occurred. I don't know if the unplug or replug caused this as I did it both in one second or so. > #0 qDeleteAll<KWin::DrmConnector* const*>(KWin::DrmConnector* const*, > KWin::DrmConnector* const*) (end=0x558831b810d0, begin=0x558831b810c8) at > /usr/include/qt5/QtCore/qalgorithms.h:320 > #1 qDeleteAll<QVector<KWin::DrmConnector*> >(QVector<KWin::DrmConnector*> > const&) (c=<optimized out>, c=...) at > /usr/include/qt5/QtCore/qalgorithms.h:328 > #2 KWin::DrmGpu::updateOutputs() [clone .isra.0] (this=<optimized out>) at > /usr/src/debug/kwin5-5.22.0-2.1.x86_64/src/plugins/platforms/drm/drm_gpu.cpp:308 > #3 0x00007f3f56df8c2e in KWin::DrmBackend::updateOutputs() > (this=0x5588308190a0) at > /usr/src/debug/kwin5-5.22.0-2.1.x86_64/src/plugins/platforms/drm/drm_backend.cpp:328 > #4 KWin::DrmBackend::updateOutputs() (this=this@entry=0x5588308190a0) at > /usr/src/debug/kwin5-5.22.0-2.1.x86_64/src/plugins/platforms/drm/drm_backend.cpp:320 > #5 0x00007f3f56df9a1b in KWin::DrmBackend::handleUdevEvent() > (this=0x5588308190a0) at > /usr/src/debug/kwin5-5.22.0-2.1.x86_64/src/plugins/platforms/drm/drm_backend.cpp:230 > #6 0x00007f3f5d3f40f3 in QtPrivate::QSlotObjectBase::call(QObject*, void**) > (a=0x7fff5456c7b0, r=0x5588308190a0, this=0x55883083ca90) at > ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 > #7 doActivate<false>(QObject*, int, void**) (sender=0x558830839290, > signal_index=3, argv=0x7fff5456c7b0) at kernel/qobject.cpp:3886 > #8 0x00007f3f5d3ed5bf in QMetaObject::activate(QObject*, QMetaObject const*, > int, void**) (sender=sender@entry=0x558830839290, m=m@entry=0x7f3f5d6a0aa0, > local_signal_index=local_signal_index@entry=0, > argv=argv@entry=0x7fff5456c7b0) at kernel/qobject.cpp:3946 > #9 0x00007f3f5d3f74bf in QSocketNotifier::activated(QSocketDescriptor, > QSocketNotifier::Type, QSocketNotifier::QPrivateSignal) > (this=this@entry=0x558830839290, _t1=..., _t2=<optimized out>, _t3=...) at > .moc/moc_qsocketnotifier.cpp:178 > #10 0x00007f3f5d3f7cbb in QSocketNotifier::event(QEvent*) > (this=0x558830839290, e=0x7fff5456c8d0) at kernel/qsocketnotifier.cpp:302 > #11 0x00007f3f5e2cda5f in QApplicationPrivate::notify_helper(QObject*, > QEvent*) (this=<optimized out>, receiver=0x558830839290, e=0x7fff5456c8d0) at > kernel/qapplication.cpp:3632 > #12 0x00007f3f5d3bdaaa in QCoreApplication::notifyInternal2(QObject*, > QEvent*) (receiver=0x558830839290, event=0x7fff5456c8d0) at > kernel/qcoreapplication.cpp:1063 > #13 0x00007f3f5d4124ab in > QEventDispatcherUNIXPrivate::activateSocketNotifiers() (this=0x5588307c3a10) > at kernel/qeventdispatcher_unix.cpp:304 > #14 0x00007f3f5d41290b in > QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) > (this=<optimized out>, flags=...) at kernel/qeventdispatcher_unix.cpp:511 > #15 0x000055882f39339d in > QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) > (this=<optimized out>, flags=...) at qunixeventdispatcher.cpp:63 > #16 0x00007f3f5d3bc4bb in > QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) > (this=this@entry=0x7fff5456ca60, flags=..., flags@entry=...) at > ../../include/QtCore/../../src/corelib/global/qflags.h:69 > #17 0x00007f3f5d3c4790 in QCoreApplication::exec() () at > ../../include/QtCore/../../src/corelib/global/qflags.h:121 > #18 0x000055882f33626a in main(int, char**) (argc=<optimized out>, > argv=<optimized out>) at > /usr/src/debug/kwin5-5.22.0-2.1.x86_64/src/main_wayland.cpp:727 > (gdb) fram 2 > #2 KWin::DrmGpu::updateOutputs() [clone .isra.0] (this=<optimized out>) at > /usr/src/debug/kwin5-5.22.0-2.1.x86_64/src/plugins/platforms/drm/drm_gpu.cpp:308 > 308 qDeleteAll(oldConnectors); > (gdb) l > 303 > 304 for(DrmOutput *removedOutput : removedOutputs) { > 305 removeOutput(removedOutput); > 306 } > 307 > 308 qDeleteAll(oldConnectors); > 309 qDeleteAll(oldCrtcs); > 310 return true; > 311 } > 312 STEPS TO REPRODUCE 1. Unplug thunderbolt (behind which a monitor is connected) 2. Replug thunderbolt 3. boom SOFTWARE/OS VERSIONS Operating System: openSUSE Tumbleweed 20210614 KDE Plasma Version: 5.22.0 KDE Frameworks Version: 5.82.0 Qt Version: 5.15.2 Kernel Version: 5.12.10-3.g332b26c-default (64-bit) Graphics Platform: Wayland Processors: 4 × Intel® Core™ i7-6600U CPU @ 2.60GHz Memory: 15.1 GiB of RAM Graphics Processor: Mesa DRI Intel® HD Graphics 520 ADDITIONAL INFORMATION Running in wayland. -- You are receiving this mail because: You are watching all bug changes.