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

            Bug ID: 418602
           Summary: plasmashell aborted when logging in to Plasma on
                    Wayland with the message "The Wayland connection
                    experienced a fatal error: Protocol error"
           Product: plasmashell
           Version: 5.18.1
          Platform: Fedora RPMs
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: generic-wayland
          Assignee: plasma-b...@kde.org
          Reporter: matthew.fagn...@utoronto.ca
  Target Milestone: 1.0

SUMMARY

I've seen plasmashell abort when logging into Plasma on Wayland in a Fedora 32
KDE Plasma spin installation. The plasmashell aborts have occurred about 12
times from Plasma 5.17.4 - 5.18.2. The screen was black except for the cursor
which moved around normally. plasmashell didn't restart automatically. These
plasmashell crashes have usually happened after a Plasma on Wayland session had
crashed and sddm reappeared. The following plasmashell abort was with Plasma
5.18.2, KF 5.67.0, Qt 5.13.2 after a kwin_wayland segmentation fault of the
type I reported at https://bugs.kde.org/show_bug.cgi?id=416974

Core was generated by `/usr/bin/plasmashell'.
Program terminated with signal SIGABRT, Aborted.
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50        return ret;
[Current thread is 1 (Thread 0x7f85a1aac580 (LWP 3242))]

(gdb) thread apply all bt

Thread 3 (Thread 0x7f858d69c700 (LWP 3636)):
#0  0x00007f859f9639cf in __GI___poll (fds=0x7f85800029e0, nfds=1, timeout=-1)
at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f859e57fa8d in g_main_context_poll (priority=<optimized out>,
n_fds=1, fds=0x7f85800029e0, timeout=<optimized out>, context=0x7f8580000c30)
at ../glib/gmain.c:4346
#2  g_main_context_iterate (context=context@entry=0x7f8580000c30,
block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at
../glib/gmain.c:4042
#3  0x00007f859e57fbc3 in g_main_context_iteration (context=0x7f8580000c30,
may_block=may_block@entry=1) at ../glib/gmain.c:4108
#4  0x00007f859fec1b75 in QEventDispatcherGlib::processEvents
(this=0x7f8580000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#5  0x00007f859fe751db in QEventLoop::exec (this=this@entry=0x7f858d69bd80,
flags=..., flags@entry=...) at
../../include/QtCore/../../src/corelib/global/qflags.h:140
#6  0x00007f859fcea6e7 in QThread::exec (this=this@entry=0x55cee4c18fc0) at
../../include/QtCore/../../src/corelib/global/qflags.h:120
#7  0x00007f85a1442d89 in QQmlThreadPrivate::run (this=0x55cee4c18fc0) at
qml/ftw/qqmlthread.cpp:152
#8  0x00007f859fceb9b6 in QThreadPrivate::start(void*) () at
thread/qthread_unix.cpp:360
#9  0x00007f859f206432 in start_thread (arg=<optimized out>) at
pthread_create.c:477
#10 0x00007f859f96e833 in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7f858e934700 (LWP 3244)):
#0  0x00007f859f9639cf in __GI___poll (fds=0x7f85880029e0, nfds=2, timeout=-1)
at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f859e57fa8d in g_main_context_poll (priority=<optimized out>,
n_fds=2, fds=0x7f85880029e0, t--Type <RET> for more, q to quit, c to continue
without paging--c
imeout=<optimized out>, context=0x7f8588000c30) at ../glib/gmain.c:4346
#2  g_main_context_iterate (context=context@entry=0x7f8588000c30,
block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at
../glib/gmain.c:4042
#3  0x00007f859e57fbc3 in g_main_context_iteration (context=0x7f8588000c30,
may_block=may_block@entry=1) at ../glib/gmain.c:4108
#4  0x00007f859fec1b75 in QEventDispatcherGlib::processEvents
(this=0x7f8588000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#5  0x00007f859fe751db in QEventLoop::exec (this=this@entry=0x7f858e933d50,
flags=..., flags@entry=...) at
../../include/QtCore/../../src/corelib/global/qflags.h:140
#6  0x00007f859fcea6e7 in QThread::exec (this=<optimized out>) at
../../include/QtCore/../../src/corelib/global/qflags.h:120
#7  0x00007f85a0dc64da in QDBusConnectionManager::run (this=0x7f85a0e34060
<(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at
qdbusconnection.cpp:178
#8  0x00007f859fceb9b6 in QThreadPrivate::start(void*) () at
thread/qthread_unix.cpp:360
#9  0x00007f859f206432 in start_thread (arg=<optimized out>) at
pthread_create.c:477
#10 0x00007f859f96e833 in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7f85a1aac580 (LWP 3242)):
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007f859f892895 in __GI_abort () at abort.c:79
#2  0x00007f859fcb7a25 in qt_message_fatal (message=<synthetic pointer>...,
context=...) at global/qlogging.cpp:1907
#3  QMessageLogger::fatal (this=this@entry=0x7fff06080940,
msg=msg@entry=0x7f858ef47e70 "The Wayland connection experienced a fatal error:
%s") at global/qlogging.cpp:888
#4  0x00007f858eeb4c24 in QtWaylandClient::QWaylandDisplay::checkError
(this=<optimized out>) at /usr/include/qt5/QtCore/qlogging.h:91
#5  0x00007f858eeb4c7e in QtWaylandClient::QWaylandDisplay::flushRequests
(this=0x55cee4ad31f0) at qwaylanddisplay.cpp:210
#6  0x00007f858eebdd1c in QtWaylandClient::QWaylandWindow::setVisible
(this=0x55cee4c357f0, visible=<optimized out>) at qwaylandwindow.cpp:411
#7  0x00007f85a023e6c0 in QWindowPrivate::setVisible (this=0x55cee4ca49d0,
visible=<optimized out>) at kernel/qwindow.cpp:408
#8  0x000055cee4068772 in ShellCorona::addOutput
(this=this@entry=0x55cee4b0c790, screen=<optimized out>,
screen@entry=0x55cee4adbdc0) at
/usr/src/debug/plasma-workspace-5.18.2-1.fc32.x86_64/shell/shellcorona.cpp:1311
#9  0x000055cee407104b in ShellCorona::load (this=0x55cee4b0c790) at
/usr/src/debug/plasma-workspace-5.18.2-1.fc32.x86_64/shell/shellcorona.cpp:766
#10 0x00007f859fe9ca20 in QtPrivate::QSlotObjectBase::call (a=0x7fff06080ca0,
r=0x55cee4b0c790, this=0x55cee4c545a0) at
../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394
#11 QMetaObject::activate (sender=0x55cee4b0d700, signalOffset=<optimized out>,
local_signal_index=<optimized out>, argv=<optimized out>) at
kernel/qobject.cpp:3789
#12 0x00007f85a1e63565 in KActivities::Consumer::serviceStatusChanged
(this=<optimized out>, _t1=<optimized out>) at
/usr/src/debug/kf5-kactivities-5.67.0-1.fc32.x86_64/x86_64-redhat-linux-gnu/src/lib/KF5Activities_autogen/EWIEGA46WW/moc_consumer.cpp:253
#13 0x00007f859fe9cbe1 in QMetaObject::activate (sender=0x55cee4b27c30,
signalOffset=<optimized out>, local_signal_index=<optimized out>,
argv=<optimized out>) at kernel/qobject.cpp:3809
#14 0x00007f85a1e63505 in KActivities::ActivitiesCache::serviceStatusChanged
(this=this@entry=0x55cee4b27c30, _t1=<optimized out>,
_t1@entry=KActivities::Consumer::Running) at
/usr/src/debug/kf5-kactivities-5.67.0-1.fc32.x86_64/x86_64-redhat-linux-gnu/src/lib/KF5Activities_autogen/EWIEGA46WW/moc_activitiescache_p.cpp:412
#15 0x00007f85a1e75e6d in KActivities::ActivitiesCache::setAllActivities
(this=this@entry=0x55cee4b27c30, _activities=...) at
/usr/src/debug/kf5-kactivities-5.67.0-1.fc32.x86_64/src/lib/activitiescache_p.cpp:300
#16 0x00007f85a1e758ab in
KActivities::ActivitiesCache::passInfoFromReply<QList<ActivityInfo>, void
(KActivities::ActivitiesCache::*)(QList<ActivityInfo> const&)> (f=(void
(KActivities::ActivitiesCache::*)(class KActivities::ActivitiesCache * const,
const class QList<ActivityInfo> &)) 0x7f85a1e75cd0
<KActivities::ActivitiesCache::setAllActivities(QList<ActivityInfo> const&)>,
watcher=0x55cee4b46780, this=0x55cee4b27c30) at
/usr/src/debug/kf5-kactivities-5.67.0-1.fc32.x86_64/src/common/dbus/org.kde.ActivityManager.Activities.h:54
#17 KActivities::ActivitiesCache::setAllActivitiesFromReply
(this=0x55cee4b27c30, watcher=0x55cee4b46780) at
/usr/src/debug/kf5-kactivities-5.67.0-1.fc32.x86_64/src/lib/activitiescache_p.cpp:226
#18 0x00007f859fe9cbe1 in QMetaObject::activate (sender=0x55cee4b46780,
signalOffset=<optimized out>, local_signal_index=<optimized out>,
argv=<optimized out>) at kernel/qobject.cpp:3809
#19 0x00007f85a0e13413 in QDBusPendingCallWatcher::finished (this=<optimized
out>, _t1=<optimized out>) at .moc/moc_qdbuspendingcall.cpp:158
#20 0x00007f859fe9d312 in QObject::event (this=0x55cee4b46780, e=<optimized
out>) at kernel/qobject.cpp:1260
#21 0x00007f85a07dce66 in QApplicationPrivate::notify_helper (this=<optimized
out>, receiver=0x55cee4b46780, e=0x55cee4b50f10) at
kernel/qapplication.cpp:3703
#22 0x00007f859fe76860 in QCoreApplication::notifyInternal2
(receiver=0x55cee4b46780, event=0x55cee4b50f10) at
../../include/QtCore/../../src/corelib/kernel/qobject.h:143
#23 0x00007f859fe79af3 in QCoreApplicationPrivate::sendPostedEvents
(receiver=0x0, event_type=0, data=0x55cee4abf770) at
kernel/qcoreapplication.cpp:1840
#24 0x00007f859fec20f7 in postEventSourceDispatch (s=s@entry=0x55cee4aef6d0) at
kernel/qeventdispatcher_glib.cpp:277
#25 0x00007f859e57f76f in g_main_dispatch (context=0x55cee4b21ea0) at
../glib/gmain.c:3309
#26 g_main_context_dispatch (context=0x55cee4b21ea0) at ../glib/gmain.c:3974
#27 0x00007f859e57faf8 in g_main_context_iterate
(context=context@entry=0x55cee4b21ea0, block=block@entry=1,
dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4047
#28 0x00007f859e57fbc3 in g_main_context_iteration (context=0x55cee4b21ea0,
may_block=may_block@entry=1) at ../glib/gmain.c:4108
#29 0x00007f859fec1b75 in QEventDispatcherGlib::processEvents
(this=0x55cee4b31800, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#30 0x00007f859fe751db in QEventLoop::exec (this=this@entry=0x7fff06081340,
flags=..., flags@entry=...) at
../../include/QtCore/../../src/corelib/global/qflags.h:140
#31 0x00007f859fe7cdb6 in QCoreApplication::exec () at
../../include/QtCore/../../src/corelib/global/qflags.h:120
#32 0x000055cee4044b7f in main (argc=<optimized out>, argv=<optimized out>) at
/usr/src/debug/plasma-workspace-5.18.2-1.fc32.x86_64/shell/main.cpp:228


The journal at the time of the plasmashell crash showed taht the EGL display
didn't start and the error message "The Wayland connection experienced a fatal
error: Protocol error" was shown. The problem might've been in Qt particularly
qtwayland given those errors.

Mar 06 02:29:34 plasmashell[3242]: qt.qpa.wayland: Failed to initialize EGL
display 3001
Mar 06 02:29:34 plasmashell[3242]: kf5.kpackage: No metadata file in the
package, expected it at: "/usr/share/wallpapers/Next/contents/images/"
Mar 06 02:29:34 plasmashell[3242]: kf5.kpackage: No metadata file in the
package, expected it at: "/usr/share/wallpapers/Next/contents/images/"
Mar 06 02:29:34 plasmashell[3242]: kf5.kpackage: No metadata file in the
package, expected it at: "/usr/share/wallpapers/Next/contents/images/"
Mar 06 02:29:34 plasmashell[3242]:
file:///usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml:76:9:
Unable to assign [undefined] to QStringList
Mar 06 02:29:34 plasmashell[3242]:
file:///usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml:75:9:
Unable to assign [undefined] to int
Mar 06 02:29:34 plasmashell[3242]:
file:///usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml:75:9:
Unable to assign [undefined] to int
Mar 06 02:29:34 plasmashell[3242]:
file:///usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml:76:9:
Unable to assign [undefined] to QStringList
Mar 06 02:29:34 plasmashell[3242]: trying to show an empty dialog
Mar 06 02:29:34 plasmashell[3242]:
file:///usr/share/plasma/shells/org.kde.plasma.desktop/contents/views/Desktop.qml:146:19:
QML Loader: Binding loop detected for property "height"
Mar 06 02:29:34 plasmashell[3242]:
file:///usr/share/plasma/shells/org.kde.plasma.desktop/contents/views/Desktop.qml:146:19:
QML Loader: Binding loop detected for property "height"
Mar 06 02:29:34 plasmashell[3242]: The Wayland connection experienced a fatal
error: Protocol error
Mar 06 02:29:34 systemd[1]: Started Process Core Dump (PID 3639/UID 0).


STEPS TO REPRODUCE
1. Boot a Fedora 32 KDE Plasma spin installation updated to 2020-2-6 with
kwin-wayland, plasma-workspace-wayland and their dependencies installed
2. Log in to Plasma 5.18.2 on Wayland
3. Use firefox until plasma crashes as in
https://bugs.kde.org/show_bug.cgi?id=416974 This step might take a while.
4. Log in to Plasma 5.18.2 on Wayland

OBSERVED RESULT
plasmashell aborted when logging in to Plasma on Wayland with the message "The
Wayland connection experienced a fatal error: Protocol error"

EXPECTED RESULT
Plasma would start normally.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Fedora 32
(available in About System)
KDE Plasma Version: 5.18.2
KDE Frameworks Version: 5.67.0
Qt Version: 5.13.2

ADDITIONAL INFORMATION

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

Reply via email to