Bug 457144 - KWin crashes in KWaylandServer::KeyboardInterfacePrivate::sendKeymap() when a Discord link is clicked
Summary: KWin crashes in KWaylandServer::KeyboardInterfacePrivate::sendKeymap() when a...
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: wayland-generic (show other bugs)
Version: git master
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-07-26 00:29 UTC by Devin Lin
Modified: 2022-10-22 15:36 UTC (History)
1 user (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Devin Lin 2022-07-26 00:29:29 UTC
SUMMARY
***
NOTE: If you are reporting a crash, please try to attach a backtrace with debug symbols.
See https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports
***

Clicking on a link in Discord in a Wayland session sometimes causes KWin to crash and the session restarts.

STEPS TO REPRODUCE
1. Open the application Discord
2. Click on a link, which should attempt to open the link in a browser 

OBSERVED RESULT
Most of the time the screen goes black, and the session comes back after a few seconds.

EXPECTED RESULT
The session doesn't crash.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Arch Linux
(available in About System)
KDE Plasma Version: 5.25.3
KDE Frameworks Version: 5.97.0
Qt Version: 5.15.5

ADDITIONAL INFORMATION
(gdb) backtrace
#0  0x00007f559eb2c36c in  () at /usr/lib/libc.so.6
#1  0x00007f559eadc838 in raise () at /usr/lib/libc.so.6
#2  0x00007f559eadc8e0 in <signal handler called> () at /usr/lib/libc.so.6
#3  0x00007f559ec007bd in  () at /usr/lib/libc.so.6
#4  0x00007f55a020ca78 in qstrncpy(char*, char const*, unsigned int) () at /usr/lib/libQt5Core.so.5
#5  0x00007f55a1d85798 in KWaylandServer::KeyboardInterfacePrivate::sendKeymap(QtWaylandServer::wl_keyboard::Resource*) (this=this@entry=0x55a6c163ff10, resource=resource@entry=0x55a6c2caeed0)
    at /home/devin/kde/src/kwin/src/wayland/keyboard_interface.cpp:95
#6  0x00007f55a1d85c2b in KWaylandServer::KeyboardInterfacePrivate::keyboard_bind_resource(QtWaylandServer::wl_keyboard::Resource*) (this=0x55a6c163ff10, resource=0x55a6c2caeed0)
    at /home/devin/kde/src/kwin/src/wayland/keyboard_interface.cpp:38
#7  0x00007f55a1def718 in QtWaylandServer::wl_keyboard::bind(wl_resource*) (this=0x55a6c163ff10, handle=0x55a6c2de9640) at /home/devin/kde/build/kwin/src/wayland/qwayland-server-wayland.cpp:4676
#8  0x00007f55a1df497a in QtWaylandServer::wl_keyboard::bind(wl_client*, unsigned int, int) (version=<optimized out>, id=<optimized out>, client=0x55a6c2c9fe80, this=0x55a6c163ff10)
    at /home/devin/kde/build/kwin/src/wayland/qwayland-server-wayland.cpp:4666
#9  QtWaylandServer::wl_keyboard::add(wl_client*, int, int) (this=0x55a6c163ff10, client=0x55a6c2c9fe80, id=<optimized out>, version=<optimized out>)
    at /home/devin/kde/build/kwin/src/wayland/qwayland-server-wayland.cpp:4583
#10 0x00007f559d89f536 in  () at /usr/lib/libffi.so.8
#11 0x00007f559d89c037 in  () at /usr/lib/libffi.so.8
#12 0x00007f559fff2ada in  () at /usr/lib/libwayland-server.so.0
#13 0x00007f559fff7010 in  () at /usr/lib/libwayland-server.so.0
#14 0x00007f559fff59e2 in wl_event_loop_dispatch () at /usr/lib/libwayland-server.so.0
#15 0x00007f55a1d7ab65 in KWaylandServer::Display::dispatchEvents() (this=<optimized out>) at /home/devin/kde/src/kwin/src/wayland/display.cpp:114
#16 0x00007f55a0398341 in  () at /usr/lib/libQt5Core.so.5
#17 0x00007f55a039a054 in QSocketNotifier::activated(QSocketDescriptor, QSocketNotifier::Type, QSocketNotifier::QPrivateSignal) () at /usr/lib/libQt5Core.so.5
#18 0x00007f55a039a198 in QSocketNotifier::event(QEvent*) () at /usr/lib/libQt5Core.so.5
#19 0x00007f559f242b3c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#20 0x00007f55a0367ad8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#21 0x00007f55a03b0fec in QEventDispatcherUNIXPrivate::activateSocketNotifiers() () at /usr/lib/libQt5Core.so.5
#22 0x00007f55a03b20e1 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#23 0x000055a6bf556f82 in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
#24 0x00007f55a036027c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#25 0x00007f55a036ada9 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#26 0x000055a6bf461dec in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /home/devin/kde/src/kwin/src/main_wayland.cpp:64

(coredump attached)
Comment 1 Nate Graham 2022-07-26 18:39:11 UTC
Cannot reproduce. Are you using IBus or a non-English keyboard layout?
Comment 2 Devin Lin 2022-07-26 23:16:50 UTC
I am using the US keyboard layout. I can't seem to always be able to reliably reproduce it unfortunately, but it has come up 3 times in the past week. Not sure if the backtrace there is useful enough to pinpoint a potential issue...
Comment 3 Devin Lin 2022-10-22 15:36:30 UTC
I can no longer reproduce