Bug 2056308 - sddm segmentation faulted when logging in to Plasma on Wayland in Fedora 36
Summary: sddm segmentation faulted when logging in to Plasma on Wayland in Fedora 36
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: sddm
Version: 36
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Martin Bříza
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2022-02-20 23:19 UTC by Matt Fagnani
Modified: 2022-03-04 04:21 UTC (History)
7 users (show)

Fixed In Version: sddm-0.19.0^git20220228.c257a40-2.fc36
Doc Type: ---
Doc Text:
Clone Of:
Environment:
Last Closed: 2022-03-04 04:21:35 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Matt Fagnani 2022-02-20 23:19:07 UTC
Description of problem:

sddm segmentation faulted QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::operator-> at ../../include/QtCore/../../src/corelib/tools/qscopedpointer.h:118 when logging in to Plasma on Wayland as the second of two users in Fedora 36. this=0x8 in frame 0 appeared to be an invalid pointer which might have been null this=0x0 from frames 2-3 plus an offset. The screen went blank and remained so.

Core was generated by `/usr/bin/sddm'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f09a9c157d3 in QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::operator->
Missing separate debuginfos, use: dnf debuginfo-install sddm-0.19.0^git20220130.85cbf3f-2.fc36.x86_64
--Type <RET> for more, q to quit, c to continue without paging--
 (this=0x8) at ../../include/QtCore/../../src/corelib/tools/qscopedpointer.h:118
118     ../../include/QtCore/../../src/corelib/tools/qscopedpointer.h: No such file or directory.
[Current thread is 1 (Thread 0x7f09a9a18940 (LWP 962))]
(gdb) bt
#0  0x00007f09a9c157d3 in QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::operator-> (this=0x8) at ../../include/QtCore/../../src/corelib/tools/qscopedpointer.h:118
#1  qGetPtrHelper<QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > > (ptr=...)
    at ../../include/QtCore/../../src/corelib/global/qglobal.h:1143
#2  QIODevice::d_func (this=0x0) at ../../include/QtCore/../../src/corelib/io/qiodevice.h:181
#3  QIODevice::write (this=0x0, data=0x558e889d3398 "", maxSize=102) at io/qiodevice.cpp:1653
#4  0x0000558e8729e841 in QIODevice::write (data=..., this=<optimized out>)
    at /usr/include/qt5/QtCore/qiodevice.h:137
#5  SDDM::SocketWriter::~SocketWriter (this=<optimized out>, this=<optimized out>)
    at /usr/src/debug/sddm-0.19.0^git20220130.85cbf3f-2.fc36.x86_64/src/common/SocketWriter.cpp:29
#6  0x0000558e872ac690 in SDDM::SocketServer::informationMessage (message=..., 
    socket=<optimized out>, this=<optimized out>)
    at /usr/src/debug/sddm-0.19.0^git20220130.85cbf3f-2.fc36.x86_64/src/common/SocketWriter.cpp:44
#7  SDDM::Display::slotAuthInfo (this=0x558e889c4a90, message=..., 
    info=SDDM::Auth::INFO_PASS_CHANGE_REQUIRED)
    at /usr/src/debug/sddm-0.19.0^git20220130.85cbf3f-2.fc36.x86_64/src/daemon/Display.cpp:438
#8  0x00007f09a9cf7bb6 in QtPrivate::QSlotObjectBase::call (a=0x7fff61955f50, r=<optimized out>, 
    this=0x558e889c5e10) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#9  doActivate<false> (sender=0x558e889b65f0, signal_index=16, argv=0x7fff61955f50)
    at kernel/qobject.cpp:3886
#10 0x00007f09a9cf2b77 in QMetaObject::activate (sender=sender@entry=0x558e889b65f0, 
    m=<optimized out>, local_signal_index=local_signal_index@entry=13, 
    argv=argv@entry=0x7fff61955f50) at kernel/qobject.cpp:3946
#11 0x0000558e872a3def in SDDM::Auth::info (_t2=SDDM::Auth::INFO_PASS_CHANGE_REQUIRED, _t1=..., 
--Type <RET> for more, q to quit, c to continue without paging--c
    this=0x558e889b65f0) at /usr/src/debug/sddm-0.19.0^git20220130.85cbf3f-2.fc36.x86_64/redhat-linux-build/src/daemon/sddm_autogen/FQWVTXS267/moc_Auth.cpp:510
#12 SDDM::Auth::Private::dataPending (this=<optimized out>) at /usr/src/debug/sddm-0.19.0^git20220130.85cbf3f-2.fc36.x86_64/src/auth/Auth.cpp:170
#13 0x00007f09a9cf7bb6 in QtPrivate::QSlotObjectBase::call (a=0x7fff61956090, r=<optimized out>, this=0x558e889ae6d0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#14 doActivate<false> (sender=0x558e889bec20, signal_index=3, argv=0x7fff61956090) at kernel/qobject.cpp:3886
#15 0x00007f09a9cf7d3f in doActivate<false> (sender=0x558e889be220, signal_index=3, argv=0x7fff61956160) at kernel/qobject.cpp:3898
#16 0x00007f09a9cf2b77 in QMetaObject::activate (sender=sender@entry=0x558e889be220, m=m@entry=0x7f09a9f98c20 <QIODevice::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3946
#17 0x00007f09a9c12554 in QIODevice::readyRead (this=this@entry=0x558e889be220) at .moc/moc_qiodevice.cpp:190
#18 0x00007f09aa0a9687 in QAbstractSocketPrivate::emitReadyRead (channel=0, this=0x558e889cfe50) at socket/qabstractsocket.cpp:1323
#19 QAbstractSocketPrivate::canReadNotification (this=0x558e889cfe50) at socket/qabstractsocket.cpp:748
#20 0x00007f09aa0bc339 in QReadNotifier::event (this=<optimized out>, e=<optimized out>) at socket/qnativesocketengine.cpp:1274
#21 0x00007f09a9cc42cd in doNotify (event=0x7fff61956260, receiver=0x558e889cdcc0) at kernel/qcoreapplication.cpp:1154
#22 QCoreApplication::notify (event=<optimized out>, receiver=<optimized out>, this=<optimized out>) at kernel/qcoreapplication.cpp:1140
#23 QCoreApplication::notifyInternal2 (receiver=0x558e889cdcc0, event=0x7fff61956260) at kernel/qcoreapplication.cpp:1064
#24 0x00007f09a9d15bbf in socketNotifierSourceDispatch (source=0x558e889bbd10) at kernel/qeventdispatcher_glib.cpp:107
#25 0x00007f09a86301bf in g_main_dispatch (context=0x558e889ac570) at ../glib/gmain.c:3413
#26 g_main_context_dispatch (context=0x558e889ac570) at ../glib/gmain.c:4131
#27 0x00007f09a86852d8 in g_main_context_iterate.constprop.0 (context=context@entry=0x558e889ac570, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4207
#28 0x00007f09a862db40 in g_main_context_iteration (context=0x558e889ac570, may_block=1) at ../glib/gmain.c:4272
#29 0x00007f09a9d1517a in QEventDispatcherGlib::processEvents (this=0x558e889b8d30, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#30 0x00007f09a9cc2d2a in QEventLoop::exec (this=this@entry=0x7fff619564d0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#31 0x00007f09a9ccae1e in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#32 0x0000558e8728d349 in main (argc=<optimized out>, argv=0x7fff619566d8) at /usr/src/debug/sddm-0.19.0^git20220130.85cbf3f-2.fc36.x86_64/src/daemon/DaemonApp.cpp:153

I switched from sddm on Wayland to sddm on X with sudo dnf swap sddm-wayland-plasma sddm-x11 as described at https://fedoraproject.org/wiki/Changes/WaylandByDefaultForSDDM sddm on X from sddm-0.19.0^git20220130.85cbf3f-2.fc36.x86_64 crashed with the same trace when logging in to Plasma on Wayland as the second user with the same black screen problem.

The user which had the crashes wasn't in the wheel group. The crashes didn't happen when logging in as the first user which was in the wheel group.

Version-Release number of selected component (if applicable):
sddm-0.19.0^git20220130.85cbf3f-2.fc36.x86_64
plasma-desktop-5.24.0-1.fc36.x86_64
kf5-plasma-5.91.0-1.fc36.x86_64
qt5-qtbase-5.15.2-33.fc36.x86_64

How reproducible:
The crashes happened 3/3 times when logging into Plasma 5.24.0 on Wayland as the second user on the system, but they didn't happen when logging in as the first user several times.

Steps to Reproduce:
1. Boot a Fedora 36 KDE Plasma installation updated to 2022-2-19. The system has two users shown in sddm.
2. Log in to Plasma on Wayland from sddm as the second user.
3.

Actual results:
sddm segmentation faulted when logging in to Plasma on Wayland in Fedora 36

Expected results:
sddm wouldn't crash. Plasma would start normally.

Additional info:
I downgraded to sddm-0.19.0-19.fc36.x86_64 from koji and rebooted. Plasma started normally as both users with sddm-0.19.0-19.fc36.x86_64. These crashes didn't happen in a Fedora 35 KDE Plasma installation on the same system before I upgraded to Fedora 36.

Comment 1 Matt Fagnani 2022-02-27 04:27:05 UTC
sddm on Wayland and sddm on X haven't crashed with sddm-0.19.0^git20220224.5ad9f19-2.fc36 or sddm-0.19.0^git20220224.5ad9f19-1.fc36 when logging in as the second user on the system, and Plasma 5.24.2 on Wayland has started normally with those versions. Thanks.

Comment 2 Fedora Update System 2022-02-28 20:10:58 UTC
FEDORA-2022-40bbeceace has been submitted as an update to Fedora 36. https://bodhi.fedoraproject.org/updates/FEDORA-2022-40bbeceace

Comment 3 Fedora Update System 2022-03-01 16:30:50 UTC
FEDORA-2022-40bbeceace has been pushed to the Fedora 36 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2022-40bbeceace`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2022-40bbeceace

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 4 Fedora Update System 2022-03-02 19:42:37 UTC
FEDORA-2022-40bbeceace has been pushed to the Fedora 36 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2022-40bbeceace`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2022-40bbeceace

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 5 Fedora Update System 2022-03-04 04:21:35 UTC
FEDORA-2022-40bbeceace has been pushed to the Fedora 36 stable repository.
If problem still persists, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.