https://bugs.kde.org/show_bug.cgi?id=515199

Alec Walsh <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |glisten_deceptive077@simple
                   |                            |login.com

--- Comment #11 from Alec Walsh <[email protected]> ---
I'm dealing with what I think is the same issue, and I have some more
information and a stack trace.

I have 2 monitors, 1 HDMI and 1 DisplayPort, and the issue occurs when
disconnecting either of them.  The issue does not happen when connecting a
monitor, only when disconnecting.

The process that is crashing is plasma-login-greeter.  plasma-login-wallpaper
exits as well, but it doesn't seem to be a crash.

Rebooting is not necessary, restarting Plasma Login Manager(systemctl restart
plasmalogin.service) after it crashes seems to work fine.

The same issue occurs whenever the system resumes after suspending, with a
slightly different stack trace.  I think it's probably the same underlying bug
though.


Operating System: Arch Linux 
KDE Plasma Version: 6.6.2
Qt Version: 6.10.2
Kernel Version: 6.19.8-arch1-1
GPU: Radeon RX 9070XT


Stack trace when disconnecting monitor:

#0  QWindow::screen (this=<optimized out>) at
/usr/src/debug/qt6-base/qtbase/src/gui/kernel/qwindow.cpp:2261
#1  0x0000564fbc7a031e in
LoginGreeter::createWindowForScreen(QScreen*)::{lambda(QScreen*)#1}::operator()(QScreen*)
const (__closure=0x564fc94854b0, screenRemoved=0x564fc91df950) at
/usr/src/debug/plasma-login-manager/plasma-login-manager-6.6.2/src/frontend/greeter/main.cpp:56
#2  QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>,
QtPrivate::List<QScreen*>, void,
LoginGreeter::createWindowForScreen(QScreen*)::{lambda(QScreen*)#1}>::call(LoginGreeter::createWindowForScreen(QScreen*)::{lambda(QScreen*)#1}&,
void**)::{lambda()#1}::operator()() const (__closure=<optimized out>) at
/usr/include/qt6/QtCore/qobjectdefs_impl.h:116
#3  QtPrivate::FunctorCallBase::call_internal<void,
QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>,
QtPrivate::List<QScreen*>, void,
LoginGreeter::createWindowForScreen(QScreen*)::{lambda(QScreen*)#1}>::call(LoginGreeter::createWindowForScreen(QScreen*)::{lambda(QScreen*)#1}&,
void**)::{lambda()#1}>(void**,
QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>,
QtPrivate::List<QScreen*>, void,
LoginGreeter::createWindowForScreen(QScreen*)::{lambda(QScreen*)#1}>::call(LoginGreeter::createWindowForScreen(QScreen*)::{lambda(QScreen*)#1}&,
void**)::{lambda()#1}&&) (args=<optimized out>, fn=...) at
/usr/include/qt6/QtCore/qobjectdefs_impl.h:65
#4  QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>,
QtPrivate::List<QScreen*>, void,
LoginGreeter::createWindowForScreen(QScreen*)::{lambda(QScreen*)#1}>::call(LoginGreeter::createWindowForScreen(QScreen*)::{lambda(QScreen*)#1}&,
void**) (f=..., arg=<optimized out>) at
/usr/include/qt6/QtCore/qobjectdefs_impl.h:115
#5 
QtPrivate::FunctorCallable<LoginGreeter::createWindowForScreen(QScreen*)::{lambda(QScreen*)#1},
QScreen*>::call<QtPrivate::List<QScreen*>,
void>(LoginGreeter::createWindowForScreen(QScreen*)::{lambda(QScreen*)#1}&,
void*, void**) (f=..., arg=<optimized out>) at
/usr/include/qt6/QtCore/qobjectdefs_impl.h:337
#6 
QtPrivate::QCallableObject<LoginGreeter::createWindowForScreen(QScreen*)::{lambda(QScreen*)#1},
QtPrivate::List<QScreen*>, void>::impl(int, QtPrivate::QSlotObjectBase*,
QObject*, void**, bool*) (which=<optimized out>, this_=0x564fc94854a0,
r=<optimized out>, a=<optimized out>, ret=<optimized out>) at
/usr/include/qt6/QtCore/qobjectdefs_impl.h:547
#7  0x00007fd1bd3d8f0f in QtPrivate::QSlotObjectBase::call (this=<optimized
out>, r=<optimized out>, a=<optimized out>, this=<optimized out>, r=<optimized
out>, a=<optimized out>) at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#8  doActivate<false> (sender=<optimized out>, signal_index=<optimized out>,
argv=<optimized out>) at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4272
#9  0x00007fd1bdc2305e in QMetaObject::activate<void, QScreen*>
(sender=0x7ffe39d9d3b0, mo=<optimized out>, local_signal_index=2, ret=0x0) at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs.h:319
#10 QGuiApplication::screenRemoved (this=0x7ffe39d9d3b0, _t1=0x564fc91df950) at
/usr/src/debug/qt6-base/build/src/gui/Gui_autogen/include/moc_qguiapplication.cpp:309
#11 QWindowSystemInterface::handleScreenRemoved (platformScreen=0x7fd1a0106890)
at /usr/src/debug/qt6-base/qtbase/src/gui/kernel/qwindowsysteminterface.cpp:760
#12 0x00007fd1bc964dc4 in
QtWaylandClient::QWaylandDisplay::registry_global_remove (this=0x564fc89a2710,
id=78) at
/usr/src/debug/qt6-base/qtbase/src/plugins/platforms/wayland/qwaylanddisplay.cpp:836
#13 0x00007fd1bad9bac6 in ?? () from /usr/lib/libffi.so.8
#14 0x00007fd1bad9876b in ?? () from /usr/lib/libffi.so.8
#15 0x00007fd1bad9b06e in ffi_call () from /usr/lib/libffi.so.8
#16 0x00007fd1be32948d in ?? () from /usr/lib/libwayland-client.so.0
#17 0x00007fd1be32a2e9 in ?? () from /usr/lib/libwayland-client.so.0
#18 0x00007fd1be32a6f3 in wl_display_dispatch_queue_pending () from
/usr/lib/libwayland-client.so.0
#19 0x00007fd1bc95eb36 in QtWaylandClient::QWaylandDisplay::flushRequests
(this=<optimized out>) at
/usr/src/debug/qt6-base/qtbase/src/plugins/platforms/wayland/qwaylanddisplay.cpp:229
#20 0x00007fd1bd3c6474 in QObject::event (this=<optimized out>, e=<optimized
out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:1413
#21 0x00007fd1bd36bf48 in QCoreApplication::notifyInternal2
(receiver=0x564fc89a2710, event=event@entry=0x7fd1a8001a80) at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1109
#22 0x00007fd1bd36c320 in QCoreApplication::sendEvent (receiver=<optimized
out>, event=0x7fd1a8001a80) at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1549
#23 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0,
data=0x564fc8998e70) at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1904
#24 0x00007fd1bd651e78 in QCoreApplication::sendPostedEvents (receiver=0x0,
event_type=0) at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1757
#25 postEventSourceDispatch (s=0x564fc89b2510) at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:246
#26 0x00007fd1bb106f4d in ?? () from /usr/lib/libglib-2.0.so.0
#27 0x00007fd1bb108617 in ?? () from /usr/lib/libglib-2.0.so.0
#28 0x00007fd1bb108825 in g_main_context_iteration () from
/usr/lib/libglib-2.0.so.0
#29 0x00007fd1bd64fcb2 in QEventDispatcherGlib::processEvents
(this=0x564fc89a0bf0, flags=...) at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#30 0x00007fd1bd376cf6 in QEventLoop::processEvents (this=0x7ffe39d9d2a0,
flags=...) at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:104
#31 QEventLoop::exec (this=0x7ffe39d9d2a0, flags=...) at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:186
#32 0x00007fd1bd3709f1 in QCoreApplication::exec () at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1452
#33 0x0000564fbc79dbbb in main (argc=<optimized out>, argv=0x7ffe39d9d608) at
/usr/src/debug/plasma-login-manager/plasma-login-manager-6.6.2/src/frontend/greeter/main.cpp:136


Stack trace when resuming from suspend:

#0  QWeakPointer<QObject>::internalData (this=<optimized out>, this=<optimized
out>) at
/usr/src/debug/qt6-base/qtbase/src/corelib/tools/qsharedpointer_impl.h:800
#1  QPointer<QScreen>::data (this=<optimized out>, this=<optimized out>) at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qpointer.h:75
#2  QWindow::screen (this=<optimized out>) at
/usr/src/debug/qt6-base/qtbase/src/gui/kernel/qwindow.cpp:2261
#3  0x000055827996b31e in
LoginGreeter::createWindowForScreen(QScreen*)::{lambda(QScreen*)#1}::operator()(QScreen*)
const (__closure=0x7f2ff17fadc0, screenRemoved=0x5582b0a7bef0) at
/usr/src/debug/plasma-login-manager/plasma-login-manager-6.6.2/src/frontend/greeter/main.cpp:56
#4  QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>,
QtPrivate::List<QScreen*>, void,
LoginGreeter::createWindowForScreen(QScreen*)::{lambda(QScreen*)#1}>::call(LoginGreeter::createWindowForScreen(QScreen*)::{lambda(QScreen*)#1}&,
void**)::{lambda()#1}::operator()() const (__closure=<optimized out>) at
/usr/include/qt6/QtCore/qobjectdefs_impl.h:116
#5  QtPrivate::FunctorCallBase::call_internal<void,
QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>,
QtPrivate::List<QScreen*>, void,
LoginGreeter::createWindowForScreen(QScreen*)::{lambda(QScreen*)#1}>::call(LoginGreeter::createWindowForScreen(QScreen*)::{lambda(QScreen*)#1}&,
void**)::{lambda()#1}>(void**,
QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>,
QtPrivate::List<QScreen*>, void,
LoginGreeter::createWindowForScreen(QScreen*)::{lambda(QScreen*)#1}>::call(LoginGreeter::createWindowForScreen(QScreen*)::{lambda(QScreen*)#1}&,
void**)::{lambda()#1}&&) (args=<optimized out>, fn=...) at
/usr/include/qt6/QtCore/qobjectdefs_impl.h:65
#6  QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>,
QtPrivate::List<QScreen*>, void,
LoginGreeter::createWindowForScreen(QScreen*)::{lambda(QScreen*)#1}>::call(LoginGreeter::createWindowForScreen(QScreen*)::{lambda(QScreen*)#1}&,
void**) (f=..., arg=<optimized out>) at
/usr/include/qt6/QtCore/qobjectdefs_impl.h:115
#7 
QtPrivate::FunctorCallable<LoginGreeter::createWindowForScreen(QScreen*)::{lambda(QScreen*)#1},
QScreen*>::call<QtPrivate::List<QScreen*>,
void>(LoginGreeter::createWindowForScreen(QScreen*)::{lambda(QScreen*)#1}&,
void*, void**) (f=..., arg=<optimized out>) at
/usr/include/qt6/QtCore/qobjectdefs_impl.h:337
#8 
QtPrivate::QCallableObject<LoginGreeter::createWindowForScreen(QScreen*)::{lambda(QScreen*)#1},
QtPrivate::List<QScreen*>, void>::impl(int, QtPrivate::QSlotObjectBase*,
QObject*, void**, bool*) (which=<optimized out>, this_=0x7f2ff17fadb0,
r=<optimized out>, a=<optimized out>, ret=<optimized out>) at
/usr/include/qt6/QtCore/qobjectdefs_impl.h:547
#9  0x00007f3039fd8f0f in QtPrivate::QSlotObjectBase::call (this=<optimized
out>, r=<optimized out>, a=<optimized out>, this=<optimized out>, r=<optimized
out>, a=<optimized out>) at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#10 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>,
argv=<optimized out>) at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4272
#11 0x00007f303a82305e in QMetaObject::activate<void, QScreen*>
(sender=0x7ffe2cc4b7d0, mo=<optimized out>, local_signal_index=2, ret=0x0) at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs.h:319
#12 QGuiApplication::screenRemoved (this=0x7ffe2cc4b7d0, _t1=0x5582b0a7bef0) at
/usr/src/debug/qt6-base/build/src/gui/Gui_autogen/include/moc_qguiapplication.cpp:309
#13 QWindowSystemInterface::handleScreenRemoved (platformScreen=0x7f30240037d0)
at /usr/src/debug/qt6-base/qtbase/src/gui/kernel/qwindowsysteminterface.cpp:760
#14 0x00007f3039601dc4 in
QtWaylandClient::QWaylandDisplay::registry_global_remove (this=0x5582af8a8710,
id=78) at
/usr/src/debug/qt6-base/qtbase/src/plugins/platforms/wayland/qwaylanddisplay.cpp:836
#15 0x00007f303857eac6 in ?? () from /usr/lib/libffi.so.8
#16 0x00007f303857b76b in ?? () from /usr/lib/libffi.so.8
#17 0x00007f303857e06e in ffi_call () from /usr/lib/libffi.so.8
#18 0x00007f303b7f448d in ?? () from /usr/lib/libwayland-client.so.0
#19 0x00007f303b7f52e9 in ?? () from /usr/lib/libwayland-client.so.0
#20 0x00007f303b7f56f3 in wl_display_dispatch_queue_pending () from
/usr/lib/libwayland-client.so.0
#21 0x00007f30395fbb36 in QtWaylandClient::QWaylandDisplay::flushRequests
(this=<optimized out>) at
/usr/src/debug/qt6-base/qtbase/src/plugins/platforms/wayland/qwaylanddisplay.cpp:229
#22 0x00007f3039fc6474 in QObject::event (this=<optimized out>, e=<optimized
out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:1413
#23 0x00007f3039f6bf48 in QCoreApplication::notifyInternal2
(receiver=0x5582af8a8710, event=event@entry=0x7f30240027f0) at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1109
#24 0x00007f3039f6c320 in QCoreApplication::sendEvent (receiver=<optimized
out>, event=0x7f30240027f0) at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1549
#25 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0,
data=0x5582af89ee70) at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1904
#26 0x00007f303a251e78 in QCoreApplication::sendPostedEvents (receiver=0x0,
event_type=0) at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1757
#27 postEventSourceDispatch (s=0x5582af8b8300) at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:246
#28 0x00007f3037e5af4d in ?? () from /usr/lib/libglib-2.0.so.0
#29 0x00007f3037e5c617 in ?? () from /usr/lib/libglib-2.0.so.0
#30 0x00007f3037e5c825 in g_main_context_iteration () from
/usr/lib/libglib-2.0.so.0
#31 0x00007f303a24fcb2 in QEventDispatcherGlib::processEvents
(this=0x5582af8a6bf0, flags=...) at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#32 0x00007f3039f76cf6 in QEventLoop::processEvents (this=0x7ffe2cc4b6c0,
flags=...) at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:104
#33 QEventLoop::exec (this=0x7ffe2cc4b6c0, flags=...) at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:186
#34 0x00007f3039f709f1 in QCoreApplication::exec () at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1452
#35 0x0000558279968bbb in main (argc=<optimized out>, argv=0x7ffe2cc4ba28) at
/usr/src/debug/plasma-login-manager/plasma-login-manager-6.6.2/src/frontend/greeter/main.cpp:136



I'm willing to provide any additional information needed and I can help test
any fixes.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to