Bug 451571 - kwin_wayland crashes when disconnecting monitor
Summary: kwin_wayland crashes when disconnecting monitor
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: wayland-generic (other bugs)
Version First Reported In: git master
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-03-16 13:14 UTC by Nicolas Fella
Modified: 2022-03-23 14:11 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nicolas Fella 2022-03-16 13:14:23 UTC
Sometimes when unplugging an external monitor kwin crashes

#0  KWin::DrmPipeline::pageFlipped(std::chrono::duration<long, std::ratio<1l, 1000000000l> >) (this=0x55631c6ac5f0, timestamp=...) at /home/nico/kde/src/kwin/src/backends/drm/drm_pipeline.cpp:414
#1  0x00007ff468805fcd in KWin::DrmPipeline::~DrmPipeline() (this=0x55631c6ac5f0, __in_chrg=<optimized out>) at /home/nico/kde/src/kwin/src/backends/drm/drm_pipeline.cpp:43
#2  0x00007ff4687e45bc in QScopedPointerDeleter<KWin::DrmPipeline>::cleanup(KWin::DrmPipeline*) (pointer=0x55631c6ac5f0) at /home/nico/kde/usr/include/QtCore/qscopedpointer.h:60
#3  0x00007ff4687e32ff in QScopedPointer<KWin::DrmPipeline, QScopedPointerDeleter<KWin::DrmPipeline> >::~QScopedPointer() (this=0x55631c6ac1f8, __in_chrg=<optimized out>) at /home/nico/kde/usr/include/QtCore/qscopedpointer.h:107
#4  0x00007ff4687e5dbc in KWin::DrmConnector::~DrmConnector() (this=0x55631c6ac1d0, __in_chrg=<optimized out>) at /home/nico/kde/src/kwin/src/backends/drm/drm_object_connector.h:54
#5  0x00007ff4687e5de4 in KWin::DrmConnector::~DrmConnector() (this=0x55631c6ac1d0, __in_chrg=<optimized out>) at /home/nico/kde/src/kwin/src/backends/drm/drm_object_connector.h:54
#6  0x00007ff4687f58a4 in KWin::DrmGpu::updateOutputs() (this=0x55631c43b320) at /home/nico/kde/src/kwin/src/backends/drm/drm_gpu.cpp:297
#7  0x00007ff4687cc753 in KWin::DrmBackend::updateOutputs() (this=0x55631c427cf0) at /home/nico/kde/src/kwin/src/backends/drm/drm_backend.cpp:314
#8  0x00007ff4687cc018 in KWin::DrmBackend::handleUdevEvent() (this=0x55631c427cf0) at /home/nico/kde/src/kwin/src/backends/drm/drm_backend.cpp:256
#9  0x00007ff4687d865e in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (KWin::DrmBackend::*)()>::call(void (KWin::DrmBackend::*)(), KWin::DrmBackend*, void**)
    (f=(void (KWin::DrmBackend::*)(KWin::DrmBackend * const)) 0x7ff4687cb96a <KWin::DrmBackend::handleUdevEvent()>, o=0x55631c427cf0, arg=0x7ffdd5caaa20) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:152
#10 0x00007ff4687d795a in QtPrivate::FunctionPointer<void (KWin::DrmBackend::*)()>::call<QtPrivate::List<>, void>(void (KWin::DrmBackend::*)(), KWin::DrmBackend*, void**)
    (f=(void (KWin::DrmBackend::*)(KWin::DrmBackend * const)) 0x7ff4687cb96a <KWin::DrmBackend::handleUdevEvent()>, o=0x55631c427cf0, arg=0x7ffdd5caaa20) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:185
#11 0x00007ff4687d65ad in QtPrivate::QSlotObject<void (KWin::DrmBackend::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*)
    (which=1, this_=0x55631c43b2d0, r=0x55631c427cf0, a=0x7ffdd5caaa20, ret=0x0) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:418
#12 0x00007ff46fd66613 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffdd5caaa20, r=0x55631c427cf0, this=0x55631c43b2d0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#13 doActivate<false>(QObject*, int, void**) (sender=0x55631c439a20, signal_index=3, argv=0x7ffdd5caaa20) at kernel/qobject.cpp:3886
#14 0x00007ff46fd5fadf in QMetaObject::activate(QObject*, QMetaObject const*, int, void**)
    (sender=sender@entry=0x55631c439a20, m=m@entry=0x7ff470002100 <QSocketNotifier::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffdd5caaa20) at kernel/qobject.cpp:3946
#15 0x00007ff46fd69aff in QSocketNotifier::activated(QSocketDescriptor, QSocketNotifier::Type, QSocketNotifier::QPrivateSignal) (this=this@entry=0x55631c439a20, _t1=..., _t2=<optimized out>, _t3=...) at .moc/moc_qsocketnotifier.cpp:178
#16 0x00007ff46fd6a2fb in QSocketNotifier::event(QEvent*) (this=0x55631c439a20, e=0x7ffdd5caab40) at kernel/qsocketnotifier.cpp:302
#17 0x00007ff46e92e69f in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x55631c439a20, e=0x7ffdd5caab40) at kernel/qapplication.cpp:3632
#18 0x00007ff46fd2fe7a in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55631c439a20, event=0x7ffdd5caab40) at kernel/qcoreapplication.cpp:1064
#19 0x00007ff46fd8487b in QEventDispatcherUNIXPrivate::activateSocketNotifiers() (this=0x55631c3bced0) at kernel/qeventdispatcher_unix.cpp:304
#20 0x00007ff46fd84cdb in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at kernel/qeventdispatcher_unix.cpp:511
#21 0x000055631a3c2bfd in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at qunixeventdispatcher.cpp:63
#22 0x00007ff46fd2e87b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffdd5caacd0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#23 0x00007ff46fd36b50 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#24 0x000055631a298805 in main(int, char**) (argc=14, argv=0x7ffdd5cab138) at /home/nico/kde/src/kwin/src/main_wayland.cpp:727
Comment 1 Zamundaaa 2022-03-23 14:11:12 UTC
This has been fixed with https://invent.kde.org/plasma/kwin/-/commit/0cd453690be88550cdc915be181fb3004f64d0f1