SUMMARY Following an update of my system to 5.19.4 plasma package I can't open a wayland session anymore. Instead I receive the following segfault after entering my password on the login screen: kwin_wayland[170551]: segfault at 0 ip 00007f8cf8fc1027 sp 00007ffd4c683788 error 4 in libwayland-server.so.0.1.0[7f8cf8fbc000+8000] SOFTWARE/OS VERSIONS Linux/KDE Plasma: Gentoo Linux (available in About System) KDE Plasma Version: 5.19.4 KDE Frameworks Version: 5.72.0 Qt Version: 5.14.2 ADDITIONAL INFORMATION The following updates were performed prior to the problem occurring: Thu Jul 30 06:29:51 2020 >>> kde-plasma/breeze-grub-5.19.4 Thu Jul 30 06:30:41 2020 >>> net-misc/rsync-3.2.2-r1 Thu Jul 30 06:31:55 2020 >>> sys-kernel/gentoo-sources-5.7.11 Thu Jul 30 06:32:15 2020 >>> dev-python/pip-20.2 Thu Jul 30 06:39:37 2020 >>> sys-devel/gdb-9.2 Thu Jul 30 06:44:07 2020 >>> dev-python/pandas-1.1.0 Thu Jul 30 06:50:57 2020 >>> sys-apps/systemd-245.5 Thu Jul 30 06:51:09 2020 >>> kde-plasma/kwallet-pam-5.19.4 Thu Jul 30 06:51:26 2020 >>> kde-plasma/plasma-workspace-wallpapers-5.19.4 Thu Jul 30 07:59:40 2020 >>> www-client/chromium-84.0.4147.105 Thu Jul 30 07:59:53 2020 >>> kde-plasma/breeze-plymouth-5.19.4 Thu Jul 30 08:00:12 2020 >>> kde-plasma/kdecoration-5.19.4 Thu Jul 30 08:01:12 2020 >>> kde-plasma/libkscreen-5.19.4 Thu Jul 30 08:02:17 2020 >>> kde-plasma/kwayland-server-5.19.4 Thu Jul 30 08:02:36 2020 >>> kde-plasma/kgamma-5.19.4 Thu Jul 30 08:02:55 2020 >>> kde-plasma/kwayland-integration-5.19.4 Thu Jul 30 08:03:14 2020 >>> kde-plasma/xembed-sni-proxy-5.19.4 Thu Jul 30 08:03:32 2020 >>> kde-plasma/polkit-kde-agent-5.19.4 Thu Jul 30 08:03:45 2020 >>> kde-plasma/ksshaskpass-5.19.4 Thu Jul 30 08:04:58 2020 >>> kde-plasma/drkonqi-5.19.4 Thu Jul 30 08:05:12 2020 >>> kde-plasma/kwrited-5.19.4 Thu Jul 30 08:06:11 2020 >>> kde-plasma/kactivitymanagerd-5.19.4 Thu Jul 30 08:06:40 2020 >>> kde-plasma/kmenuedit-5.19.4 Thu Jul 30 08:07:05 2020 >>> kde-plasma/user-manager-5.19.4 Thu Jul 30 08:08:08 2020 >>> kde-plasma/libksysguard-5.19.4 Thu Jul 30 08:09:14 2020 >>> kde-plasma/discover-5.19.4 Thu Jul 30 08:10:14 2020 >>> kde-plasma/ksysguard-5.19.4 Thu Jul 30 08:10:50 2020 >>> kde-plasma/xdg-desktop-portal-kde-5.19.4 Thu Jul 30 08:11:35 2020 >>> kde-plasma/plasma-vault-5.19.4 Thu Jul 30 08:12:13 2020 >>> kde-plasma/plasma-pa-5.19.4 Thu Jul 30 08:12:52 2020 >>> kde-plasma/plasma-sdk-5.19.4 Thu Jul 30 08:13:15 2020 >>> kde-plasma/milou-5.19.4 Thu Jul 30 08:13:45 2020 >>> kde-plasma/plasma-browser-integration-5.19.4 Thu Jul 30 08:14:51 2020 >>> kde-plasma/breeze-5.19.4 Thu Jul 30 08:15:18 2020 >>> kde-plasma/plasma-integration-5.19.4 Thu Jul 30 08:15:33 2020 >>> kde-plasma/breeze-gtk-5.19.4 Thu Jul 30 08:16:13 2020 >>> kde-plasma/kscreenlocker-5.19.4 Thu Jul 30 08:25:01 2020 >>> kde-plasma/kwin-5.19.4 Thu Jul 30 08:25:26 2020 >>> kde-plasma/libkworkspace-5.19.4 Thu Jul 30 08:26:21 2020 >>> kde-plasma/kde-cli-tools-5.19.4 Thu Jul 30 08:34:47 2020 >>> kde-plasma/plasma-workspace-5.19.4 Thu Jul 30 08:36:29 2020 >>> kde-plasma/oxygen-5.19.4 Thu Jul 30 08:36:50 2020 >>> kde-plasma/kde-gtk-config-5.19.4 Thu Jul 30 08:39:43 2020 >>> kde-plasma/plasma-nm-5.19.4 Thu Jul 30 08:40:05 2020 >>> kde-plasma/sddm-kcm-5.19.4 Thu Jul 30 08:41:21 2020 >>> kde-plasma/khotkeys-5.19.4 Thu Jul 30 08:42:30 2020 >>> kde-plasma/kinfocenter-5.19.4 Thu Jul 30 08:43:10 2020 >>> kde-plasma/kscreen-5.19.4 Thu Jul 30 08:44:45 2020 >>> kde-plasma/powerdevil-5.19.4 Thu Jul 30 08:45:19 2020 >>> kde-plasma/systemsettings-5.19.4 Thu Jul 30 08:46:27 2020 >>> kde-plasma/bluedevil-5.19.4 Thu Jul 30 08:46:47 2020 >>> kde-plasma/plymouth-kcm-5.19.4 Thu Jul 30 08:54:25 2020 >>> kde-plasma/plasma-desktop-5.19.4 Thu Jul 30 08:56:31 2020 >>> kde-plasma/kdeplasma-addons-5.19.4 Thu Jul 30 08:56:41 2020 >>> kde-plasma/plasma-meta-5.19.4
Got the same thing on KDE Neon Stable upgraded to 20.04. Was trying to get a backtrace, but I could not VT switch when running kwin_wayland in GDB. With some more experimentation, I found that this dies only when starting plasmashell or plasma_wayland. Running without that seems to work somewhat (krunner, konsole, hotkey daemon). Will try to get a meaningful backtrace!
Backtrace: (gdb) bt #0 get_next_argument (signature=0x0, details=0x7ffffd91f4e0) at ../src/connection.c:445 #1 0x00007fc68a746b4d in wl_argument_from_va_list (signature=<optimised out>, args=args@entry=0x7ffffd91f520, count=count@entry=20, ap=ap@entry=0x7ffffd91f508) at ../src/connection.c:508 #2 0x00007fc68a741fc5 in wl_resource_post_event (resource=0x564c4bf4b5a0, opcode=3) at ../src/wayland-server.c:249 #3 0x00007fc68d7b74a1 in KWaylandServer::PlasmaWindowManagementInterface::Private::sendStackingOrderChanged(wl_resource*) () at /usr/lib/x86_64-linux-gnu/libKWaylandServer.so.5 #4 0x00007fc68d7b7567 in KWaylandServer::PlasmaWindowManagementInterface::Private::sendStackingOrderChanged() () at /usr/lib/x86_64-linux-gnu/libKWaylandServer.so.5 #5 0x00007fc68d7b76a8 in KWaylandServer::PlasmaWindowManagementInterface::Private::bind(wl_client*, unsigned int, unsigned int) () at /usr/lib/x86_64-linux-gnu/libKWaylandServer.so.5 #6 0x00007fc689112ff5 in () at /usr/lib/x86_64-linux-gnu/libffi.so.7 #7 0x00007fc68911240a in () at /usr/lib/x86_64-linux-gnu/libffi.so.7 #8 0x00007fc68a747628 in wl_closure_invoke (closure=closure@entry=0x564c4c02f020, flags=flags@entry=2, target=<optimised out>, target@entry=0x564c4bf67070, opcode=opcode@entry=0, data=<optimised out>, data@entry=0x564c4bf69cf0) at ../src/connection.c:1018 #9 0x00007fc68a7439e2 in wl_client_connection_data (fd=<optimised out>, mask=<optimised out>, data=0x564c4bf69cf0) at ../src/wayland-server.c:432 #10 0x00007fc68a74565a in wl_event_loop_dispatch (loop=0x564c4b160ed0, timeout=<optimised out>) at ../src/event-loop.c:1027 #11 0x00007fc68d79e6e3 in KWaylandServer::Display::Private::dispatch() () at /usr/lib/x86_64-linux-gnu/libKWaylandServer.so.5 #12 0x00007fc68cbfc51e in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffffd91fe30, r=0x564c4b16be80, this=0x564c4b1610a0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #13 doActivate<false>(QObject*, int, void**) (sender=0x564c4b161080, signal_index=3, argv=0x7ffffd91fe30) at kernel/qobject.cpp:3870 #14 0x00007fc68cbf6af7 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x564c4b161080, m=m@entry=0x7fc68cea2ba0 <QSocketNotifier::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffffd91fe30) at kernel/qobject.cpp:3930 #15 0x00007fc68cbffd95 in QSocketNotifier::activated(int, QSocketNotifier::QPrivateSignal) (this=this@entry=0x564c4b161080, _t1=<optimised out>, _t2=...) at .moc/moc_qsocketnotifier.cpp:141 #16 0x00007fc68cc000f1 in QSocketNotifier::event(QEvent*) (this=0x564c4b161080, e=0x7ffffd9200f0) at kernel/qsocketnotifier.cpp:266 #17 0x00007fc68d016cc3 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x564c4b13f1d0, receiver=receiver@entry=0x564c4b161080, e=e@entry=0x7ffffd9200f0) at kernel/qapplication.cpp:3685 #18 0x00007fc68d01ff40 in QApplication::notify(QObject*, QEvent*) (this=0x7ffffd9204d0, receiver=0x564c4b161080, e=0x7ffffd9200f0) at kernel/qapplication.cpp:3431 #19 0x00007fc68cbc678a in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x564c4b161080, event=0x7ffffd9200f0) at ../../include/QtCore/../../src/corelib/kernel/qobject.h:153 #20 0x00007fc68cc1c40b in QEventDispatcherUNIXPrivate::activateSocketNotifiers() (this=0x564c4b145870) at kernel/qeventdispatcher_unix.cpp:304 #21 0x00007fc68cc1c86b in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimised out>, flags=...) at kernel/qeventdispatcher_unix.cpp:509 #22 0x00007fc6865f37c1 in () at /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/KWinQpaPlugin.so #23 0x00007fc68cbc524b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffffd920280, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:136 #24 0x00007fc68cbcd296 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:118 #25 0x0000564c4a9797ec in () #26 0x00007fc68c5490b3 in __libc_start_main (main=0x564c4a977970, argc=2, argv=0x7ffffd920738, init=<optimised out>, fini=<optimised out>, rtld_fini=<optimised out>, stack_end=0x7ffffd920728) at ../csu/libc-start.c:308
(gdb) disas Dump of assembler code for function get_next_argument: 0x00007fc68a7463c0 <+0>: endbr64 0x00007fc68a7463c4 <+4>: movl $0x0,0x4(%rsi) => 0x00007fc68a7463cb <+11>: movzbl (%rdi),%edx 0x00007fc68a7463ce <+14>: test %dl,%dl 0x00007fc68a7463d0 <+16>: je 0x7fc68a746403 <get_next_argument+67> 0x00007fc68a7463d2 <+18>: lea 0x3def(%rip),%rcx # 0x7fc68a74a1c8 0x00007fc68a7463d9 <+25>: lea -0x3f(%rdx),%eax 0x00007fc68a7463dc <+28>: cmp $0x36,%al 0x00007fc68a7463de <+30>: ja 0x7fc68a7463f7 <get_next_argument+55> 0x00007fc68a7463e0 <+32>: movzbl %al,%eax 0x00007fc68a7463e3 <+35>: movslq (%rcx,%rax,4),%rax 0x00007fc68a7463e7 <+39>: add %rcx,%rax 0x00007fc68a7463ea <+42>: notrack jmpq *%rax 0x00007fc68a7463ed <+45>: nopl (%rax) 0x00007fc68a7463f0 <+48>: movl $0x1,0x4(%rsi) 0x00007fc68a7463f7 <+55>: movzbl 0x1(%rdi),%edx 0x00007fc68a7463fb <+59>: add $0x1,%rdi 0x00007fc68a7463ff <+63>: test %dl,%dl 0x00007fc68a746401 <+65>: jne 0x7fc68a7463d9 <get_next_argument+25> 0x00007fc68a746403 <+67>: movb $0x0,(%rsi) 0x00007fc68a746406 <+70>: mov %rdi,%rax 0x00007fc68a746409 <+73>: retq 0x00007fc68a74640a <+74>: nopw 0x0(%rax,%rax,1) 0x00007fc68a746410 <+80>: mov %dl,(%rsi) 0x00007fc68a746412 <+82>: lea 0x1(%rdi),%rax 0x00007fc68a746416 <+86>: retq (gdb) info reg rax 0x13 19 rbx 0x564c4b164b50 94885677255504 rcx 0x7ffffd91f508 140737447589128 rdx 0x14 20 rsi 0x7ffffd91f4e0 140737447589088 rdi 0x0 0 rbp 0x564c4bf4b5a0 0x564c4bf4b5a0 rsp 0x7ffffd91f4d8 0x7ffffd91f4d8 r8 0x7fc68a74a3a0 140490703152032 r9 0x7ffffd91f520 140737447589152 r10 0x7ffffd91f5c0 140737447589312 r11 0x7ffffd91f508 140737447589128 r12 0x3 3 r13 0x7ffffd91f520 140737447589152 r14 0x564c4b1a9490 94885677536400 r15 0x7ffffd91f7fc 140737447589884 rip 0x7fc68a7463cb 0x7fc68a7463cb <get_next_argument+11> eflags 0x10206 [ PF IF RF ] cs 0x33 51 ss 0x2b 43 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0
Seems like someone is calling get_next_argument with signature= 0 here: https://gitlab.freedesktop.org/wayland/wayland/blob/master/src/connection.c#L442 And it is either jumping in with a NULL string signature into wl_argument_from_va_list here: https://gitlab.freedesktop.org/wayland/wayland/blob/master/src/connection.c#L499 or a not properly terminated signature. Seems like opcode 3 that is used ehre ( https://gitlab.freedesktop.org/wayland/wayland/-/blob/master/src/wayland-server.c#L242 ) is not properly initialised: (gdb) up #2 0x00007fc68a741fc5 in wl_resource_post_event (resource=0x564c4bf4b5a0, opcode=3) at ../src/wayland-server.c:249 249 ../src/wayland-server.c: No such file or directory. (gdb) print object->interface->events[3] $10 = {name = 0x0, signature = 0x0, types = 0x0} The other opcodes look sensible: (gdb) print object->interface->events[0] $11 = {name = 0x7fc68d8fb83a "show_desktop_changed", signature = 0x7fc68d8fb519 "u", types = 0x7fc68d928a20} (gdb) print object->interface->events[1] $12 = {name = 0x7fc68d8fb6a2 "window", signature = 0x7fc68d8fb519 "u", types = 0x7fc68d928a20} (gdb) print object->interface->events[2] $13 = {name = 0x7fc68d8fb84f "stacking_order_changed", signature = 0x7fc68d8fb866 "11a", types = 0x7fc68d928a20} (gdb) print object->interface->events[3] $14 = {name = 0x0, signature = 0x0, types = 0x0} (gdb) print object->interface->events[4] $15 = {name = 0x7fc68d8fb86a "show_desktop", signature = 0x7fc68d8fb519 "u", types = 0x7fc68d928a20} (gdb) print object->interface->events[5] $16 = {name = 0x7fc68d8fb877 "get_window", signature = 0x7fc68d8fb78d "nu", types = 0x7fc68d928a40}
(gdb) print *resource $20 = {object = {interface = 0x7fc68d91ec00 <org_kde_plasma_window_management_interface>, implementation = 0x7fc68d83d1e0 <KWaylandServer::PlasmaWindowManagementInterface::Private::s_interface>, id = 32}, destroy = 0x7fc68d7b77c0 <KWaylandServer::PlasmaWindowManagementInterface::Private::unbind(wl_resource*)>, link = {prev = 0x100000000000001, next = 0x0}, deprecated_destroy_signal = {listener_list = {prev = 0x564c4bf4b5d0, next = 0x564c4bf4b5d0}}, client = 0x564c4bf69cf0, data = 0x564c4b164b50, version = 11, dispatcher = 0x0, destroy_signal = {listener_list = {prev = 0x564c4bf4b600, next = 0x564c4bf4b600}, emit_list = {prev = 0x564c4bf4b610, next = 0x564c4bf4b610}}}
What version of plasma-wayland-protocols do you have installed on your computer?
In order to fix this crash, you need to install plasma-wayland-protocols>=1.1.1 and re-compile kwayland + kwayland-server.
I get a similar segfault, but after updating my kde neon distribution to focal 20.04: kwin_wayland[11167]: segfault at 0 ip 00007f0bf495d3cb sp 00007fff42c83408 error 4 in libwayland-server.so.0.1.0[7f0bf4958000+8000] Seems to be affecting a few other users: https://www.reddit.com/r/kdeneon/comments/i480oq/segmentation_fault_at_plasma_wayland_session/
Version of plasma-wayland-protocols => it seems I have no version of this installed... will install and see if it goes away. $ apt policy plasma-wayland-protocols plasma-wayland-protocols: Installed: (none) Candidate: 1.1.1-0xneon+20.04+focal+build4 Version table: 1.1.1-0xneon+20.04+focal+build4 500 500 http://archive.neon.kde.org/user focal/main amd64 Packages
Just installing plasma-wayland-protocols 1.1.1-0xneon+20.04+focal+build4 by itself does not make the crash go away. Just FYI, the other (hopefully) relevant packages where this occurs are: $ apt policy libkf5waylandclient5 libkf5waylandclient5: Installed: 4:5.72.0-0xneon+20.04+focal+build3 Candidate: 4:5.72.0-0xneon+20.04+focal+build3 Version table: *** 4:5.72.0-0xneon+20.04+focal+build3 500 500 http://archive.neon.kde.org/user focal/main amd64 Packages $ apt policy libkwaylandserver5 libkwaylandserver5: Installed: 5.19.4-0xneon+20.04+focal+build8 Candidate: 5.19.4-0xneon+20.04+focal+build8 Version table: *** 5.19.4-0xneon+20.04+focal+build8 500 500 http://archive.neon.kde.org/user focal/main amd64 Packages I'll go and upgrade and see if Neon packaging already picked up the right versions.
Upgrading (on User edition) still has the crash. Package versions as per below: $ apt policy libkf5waylandclient5 libkwaylandserver5 plasma-wayland-protocols libkf5waylandclient5: Installed: 4:5.72.0-0xneon+20.04+focal+build3 Candidate: 4:5.72.0-0xneon+20.04+focal+build3 Version table: *** 4:5.72.0-0xneon+20.04+focal+build3 500 500 http://archive.neon.kde.org/user focal/main amd64 Packages 100 /var/lib/dpkg/status 4:5.70.0-1 -1 -1 http://ftp.uk.debian.org/debian sid/main amd64 Packages 4:5.68.0-0ubuntu1 500 500 http://mirror.sov.uk.goscomb.net/ubuntu focal/universe amd64 Packages libkwaylandserver5: Installed: 5.19.4-0xneon+20.04+focal+build8 Candidate: 5.19.4-0xneon+20.04+focal+build8 Version table: *** 5.19.4-0xneon+20.04+focal+build8 500 500 http://archive.neon.kde.org/user focal/main amd64 Packages 100 /var/lib/dpkg/status plasma-wayland-protocols: Installed: 1.1.1-0xneon+20.04+focal+build4 Candidate: 1.1.1-0xneon+20.04+focal+build4 Version table: *** 1.1.1-0xneon+20.04+focal+build4 500 500 http://archive.neon.kde.org/user focal/main amd64 Packages 100 /var/lib/dpkg/status
Cherry-picking packages from KDE Neon Testing makes this work again. Versions: $ apt policy libkf5waylandclient5 libkwaylandserver5 plasma-wayland-protocols kwayland-data libkf5waylandclient5: Installed: 4:5.73.0+p20.04+git20200817.1942-0 Candidate: 4:5.73.0+p20.04+git20200817.1942-0 Version table: *** 4:5.73.0+p20.04+git20200817.1942-0 100 100 /var/lib/dpkg/status 4:5.72.0-0xneon+20.04+focal+build3 500 500 http://archive.neon.kde.org/user focal/main amd64 Packages 4:5.70.0-1 -1 -1 http://ftp.uk.debian.org/debian sid/main amd64 Packages 4:5.68.0-0ubuntu1 500 500 http://mirror.sov.uk.goscomb.net/ubuntu focal/universe amd64 Packages libkwaylandserver5: Installed: 5.19.4-0xneon+20.04+focal+build8 Candidate: 5.19.4-0xneon+20.04+focal+build8 Version table: *** 5.19.4-0xneon+20.04+focal+build8 500 500 http://archive.neon.kde.org/user focal/main amd64 Packages 100 /var/lib/dpkg/status plasma-wayland-protocols: Installed: 1.1.1+p18.04+git20200731.1041-0 Candidate: 1.1.1+p18.04+git20200731.1041-0 Version table: *** 1.1.1+p18.04+git20200731.1041-0 100 100 /var/lib/dpkg/status 1.1.1-0xneon+20.04+focal+build4 500 500 http://archive.neon.kde.org/user focal/main amd64 Packages kwayland-data: Installed: 4:5.73.0+p20.04+git20200817.1942-0 Candidate: 4:5.73.0+p20.04+git20200817.1942-0 Version table: *** 4:5.73.0+p20.04+git20200817.1942-0 100 100 /var/lib/dpkg/status 4:5.72.0-0xneon+20.04+focal+build3 500 500 http://archive.neon.kde.org/user focal/main amd64 Packages 500 http://archive.neon.kde.org/user focal/main i386 Packages 500 http://archive.neon.kde.org/user focal/main all Packages 4:5.70.0-1 -1 -1 http://ftp.uk.debian.org/debian sid/main amd64 Packages -1 http://ftp.uk.debian.org/debian sid/main i386 Packages 4:5.68.0-0ubuntu1 500 500 http://mirror.sov.uk.goscomb.net/ubuntu focal/universe amd64 Packages 500 http://mirror.sov.uk.goscomb.net/ubuntu focal/universe i386 Packages
Yes, you were probably using kwayland or kwayland-server that hadn't been rebuilt against plasma-wayland-protocols 1.1.1. Either way, it's a duplicate of bug 424780. Thank you verifying that the issue goes away in neon testing. *** This bug has been marked as a duplicate of bug 424780 ***