SUMMARY kwin_wayland crashed STEPS TO REPRODUCE 1. Unknown, nothing obvious/noticeable. OBSERVED RESULT crash EXPECTED RESULT no crash SOFTWARE/OS VERSIONS Operating System: NixOS 25.11 KDE Plasma Version: 6.4.1 KDE Frameworks Version: 6.15.0 Qt Version: 6.9.0 Kernel Version: 6.15.3 (64-bit) Graphics Platform: Wayland Processors: 24 × AMD Ryzen 9 5900X 12-Core Processor Memory: 32 GiB of RAM (31.3 GiB usable) Graphics Processor: AMD Radeon RX 7900 XTX ADDITIONAL INFORMATION ``` (gdb) bt #0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at pthread_kill.c:44 #1 0x00007f0a2d89cfa3 in __pthread_kill_internal (threadid=<optimized out>, signo=11) at pthread_kill.c:78 #2 0x00007f0a2d84190e in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26 #3 0x00007f0a322636f3 in KCrash::defaultCrashHandler (sig=11) at /build/kcrash-6.15.0/src/kcrash.cpp:605 #4 <signal handler called> #5 0x00007f0a2eec2769 in QKeySequence::operator[] (this=this@entry=0x254d9af0, index=4294967295) at /build/qtbase-everywhere-src-6.9.0/src/gui/kernel/qkeysequence.cpp:1368 #6 0x00007f0a31eab8d3 in KWin::TabBox::areModKeysDepressed (shortcuts=...) at /build/kwin-6.4.1/src/tabbox/tabbox.cpp:664 #7 KWin::TabBox::TabBox::navigatingThroughWindows (this=0x239a4220, forward=<optimized out>, shortcut=..., mode=KWin::TabBoxWindowsMode) at /build/kwin-6.4.1/src/tabbox/tabbox.cpp:694 #8 KWin::TabBox::TabBox::navigatingThroughWindows (this=0x239a4220, forward=<optimized out>, shortcut=..., mode=KWin::TabBoxWindowsMode) at /build/kwin-6.4.1/src/tabbox/tabbox.cpp:684 #9 0x00007f0a2e2207ee in QtPrivate::QSlotObjectBase::call (this=0x24b23de0, r=<optimized out>, a=0x7ffc5b20bbb0) at /build/qtbase-everywhere-src-6.9.0/src/corelib/kernel/qobjectdefs_impl.h:461 #10 doActivate<false> (sender=0x24b99cb0, signal_index=7, argv=0x7ffc5b20bbb0) at /build/qtbase-everywhere-src-6.9.0/src/corelib/kernel/qobject.cpp:4138 #11 0x00007f0a2e2167a7 in QMetaObject::activate (sender=sender@entry=0x24b99cb0, m=m@entry=0x7f0a2f1d5f40 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=4, argv=argv@entry=0x7ffc5b20bbb0) at /build/qtbase-everywhere-src-6.9.0/src/corelib/kernel/qobject.cpp:4198 #12 0x00007f0a2eeb5f84 in QMetaObject::activate<void, bool> (sender=0x24b99cb0, mo=0x7f0a2f1d5f40 <QAction::staticMetaObject>, local_signal_index=4, ret=0x0) at /build/qtbase-everywhere-src-6.9.0/src/corelib/kernel/qobjectdefs.h:306 #13 QAction::triggered (this=this@entry=0x24b99cb0, _t1=<optimized out>) at /build/qtbase-everywhere-src-6.9.0/build/src/gui/Gui_autogen/include/moc_qaction.cpp:372 #14 0x00007f0a2eeb930f in QAction::activate (this=0x24b99cb0, event=<optimized out>) at /build/qtbase-everywhere-src-6.9.0/src/gui/kernel/qaction.cpp:1104 #15 0x00007f0a2e2207ee in QtPrivate::QSlotObjectBase::call (this=0x24ac7b40, r=<optimized out>, a=0x7ffc5b20bd60) at /build/qtbase-everywhere-src-6.9.0/src/corelib/kernel/qobjectdefs_impl.h:461 #16 doActivate<false> (sender=0x24ac7640, signal_index=3, argv=0x7ffc5b20bd60) at /build/qtbase-everywhere-src-6.9.0/src/corelib/kernel/qobject.cpp:4138 #17 0x00007f0a2e2167a7 in QMetaObject::activate (sender=<optimized out>, m=m@entry=0x7f0a2fffe3e0 <OrgKdeKglobalaccelComponentInterface::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffc5b20bd60) at /build/qtbase-everywhere-src-6.9.0/src/corelib/kernel/qobject.cpp:4198 #18 0x00007f0a2fff4465 in QMetaObject::activate<void, QString, QString, long long> (sender=<optimized out>, mo=0x7f0a2fffe3e0 <OrgKdeKglobalaccelComponentInterface::staticMetaObject>, local_signal_index=0, ret=0x0) at /nix/store/l9kvcx3wna1bla7xpy1629hawjqmna4y-qtbase-6.9.0/include/QtCore/qobjectdefs.h:306 #19 OrgKdeKglobalaccelComponentInterface::globalShortcutPressed (this=<optimized out>, _t1=..., _t2=..., _t3=<optimized out>) at /build/kglobalaccel-6.15.0/build/src/moc_kglobalaccel_component_interface.cpp:199 #20 OrgKdeKglobalaccelComponentInterface::qt_static_metacall (_o=0x24ac7640, _c=<optimized out>, _id=<optimized out>, _a=0x7ffc5b20bf58) at /build/kglobalaccel-6.15.0/build/src/moc_kglobalaccel_component_interface.cpp:122 #21 0x00007f0a2fff46ff in OrgKdeKglobalaccelComponentInterface::qt_metacall (this=0x24ac7640, _c=<optimized out>, _id=0, _a=0x7ffc5b20bf58) at /build/kglobalaccel-6.15.0/build/src/moc_kglobalaccel_component_interface.cpp:179 #22 0x00007f0a2f463d66 in QDBusConnectionPrivate::deliverCall (this=0x7f0a20001690, object=0x24ac7640, msg=..., metaTypes=..., slotIdx=5) at /build/qtbase-everywhere-src-6.9.0/src/dbus/qdbusintegrator.cpp:1007 #23 0x00007f0a2e211aea in QObject::event (this=0x24ac7640, e=0x7f0a20025d60) at /build/qtbase-everywhere-src-6.9.0/src/corelib/kernel/qobject.cpp:1431 #24 0x00007f0a2f7a19fd in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x24ac7640, e=0x7f0a20025d60) at /build/qtbase-everywhere-src-6.9.0/src/widgets/kernel/qapplication.cpp:3301 #25 0x00007f0a2e1b4408 in QCoreApplication::notifyInternal2 (receiver=0x24ac7640, event=0x7f0a20025d60) at /build/qtbase-everywhere-src-6.9.0/src/corelib/kernel/qcoreapplication.cpp:1106 #26 0x00007f0a2e1b466d in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>) at /build/qtbase-everywhere-src-6.9.0/src/corelib/kernel/qcoreapplication.cpp:1546 #27 0x00007f0a2e1b8258 in QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=data@entry=0x231b0830) at /build/qtbase-everywhere-src-6.9.0/src/corelib/kernel/qcoreapplication.cpp:1879 #28 0x00007f0a2e390e52 in QEventDispatcherUNIX::processEvents (this=0x231d7b20, flags=...) at /build/qtbase-everywhere-src-6.9.0/src/corelib/kernel/qeventdispatcher_unix.cpp:418 #29 0x00007f0a2eff2bb2 in QUnixEventDispatcherQPA::processEvents (this=<optimized out>, flags=...) at /build/qtbase-everywhere-src-6.9.0/src/gui/platform/unix/qunixeventdispatcher.cpp:27 #30 0x00007f0a2e1c2d2b in QEventLoop::exec (this=this@entry=0x7ffc5b20c4a0, flags=..., flags@entry=...) at /build/qtbase-everywhere-src-6.9.0/src/corelib/global/qflags.h:77 #31 0x00007f0a2e1bdf21 in QCoreApplication::exec () at /build/qtbase-everywhere-src-6.9.0/src/corelib/global/qflags.h:77 #32 0x00007f0a2e9f056d in QGuiApplication::exec () at /build/qtbase-everywhere-src-6.9.0/src/gui/kernel/qguiapplication.cpp:1993 #33 0x00007f0a2f7a1969 in QApplication::exec () at /build/qtbase-everywhere-src-6.9.0/src/widgets/kernel/qapplication.cpp:2568 #34 0x0000000000448d9e in main (argc=<optimized out>, argv=<optimized out>) at /build/kwin-6.4.1/src/main_wayland.cpp:638 (gdb) frame 6 Downloading source file /build/kwin-6.4.1/src/tabbox/tabbox.cpp #6 0x00007f0a31eab8d3 in KWin::TabBox::areModKeysDepressed (shortcuts=...) at /build/kwin-6.4.1/src/tabbox/tabbox.cpp:664 664 const Qt::KeyboardModifiers mod = seq[seq.count() - 1].keyboardModifiers(); (gdb) l 659 if (shortcuts.isEmpty()) { 660 return false; 661 } 662 663 for (const QKeySequence &seq : shortcuts) { 664 const Qt::KeyboardModifiers mod = seq[seq.count() - 1].keyboardModifiers(); 665 const Qt::KeyboardModifiers mods = input()->modifiersRelevantForGlobalShortcuts(); 666 667 if ((mod & Qt::ShiftModifier) && mods.testFlag(Qt::ShiftModifier)) { 668 return true; (gdb) p seq.count $7 = {int (const QKeySequence * const)} 0x7f0a2eec1c90 <QKeySequence::count() const> (gdb) info locals mod = <optimized out> mods = <optimized out> seq = @0x254d9af0: {static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7f0a2f0d70b8 <QKeySequence::qt_staticMetaObjectStaticContent<(anonymous namespace)::qt_meta_tag_ZN12QKeySequenceE_t>+728>, data = 0x7f0a2f0d6de0 <QKeySequence::qt_staticMetaObjectStaticContent<(anonymous namespace)::qt_meta_tag_ZN12QKeySequenceE_t>>, static_metacall = 0x0, relatedMetaObjects = 0x0, metaTypes = 0x7f0a2f1c6fc0 <QKeySequence::qt_staticMetaObjectRelocatingContent<(anonymous namespace)::qt_meta_tag_ZN12QKeySequenceE_t>>, extradata = 0x0}}, d = 0x256cf870} __for_range = <optimized out> __for_begin = <optimized out> __for_end = <optimized out> (gdb) frame 5 #5 0x00007f0a2eec2769 in QKeySequence::operator[] (this=this@entry=0x254d9af0, index=4294967295) at /build/qtbase-everywhere-src-6.9.0/src/gui/kernel/qkeysequence.cpp:1368 1368 return QKeyCombination::fromCombined(d->key[index]); (gdb) l 1363 sequence. This can only be used to read an element. 1364 */ 1365 QKeyCombination QKeySequence::operator[](uint index) const 1366 { 1367 Q_ASSERT_X(index < QKeySequencePrivate::MaxKeyCount, "QKeySequence::operator[]", "index out of range"); 1368 return QKeyCombination::fromCombined(d->key[index]); 1369 } 1370 1371 1372 /*! (gdb) p d $8 = (QKeySequencePrivate *) 0x256cf870 (gdb) p d->key $10 = {0, 0, 0, 0} (gdb) p index $11 = 4294967295
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/7851
Git commit d00c192c568a14aead0a5d536685d6e34cc969be by Vlad Zahorodnii, on behalf of David Edmundson. Committed on 01/07/2025 at 10:54. Pushed by vladz into branch 'master'. tabbox: Guard for empty key sequences M +3 -0 src/tabbox/tabbox.cpp https://invent.kde.org/plasma/kwin/-/commit/d00c192c568a14aead0a5d536685d6e34cc969be
Git commit 0d46ef4936f6d1f9befa2d96b5e0f604b19a15e0 by Vlad Zahorodnii. Committed on 01/07/2025 at 10:56. Pushed by vladz into branch 'Plasma/6.4'. tabbox: Guard for empty key sequences (cherry picked from commit d00c192c568a14aead0a5d536685d6e34cc969be) 3c58f3c7 tabbox: Guard for empty key sequences 2be6e2e3 Apply 1 suggestion(s) to 1 file(s) Co-authored-by: David Edmundson <kde@davidedmundson.co.uk> M +3 -0 src/tabbox/tabbox.cpp https://invent.kde.org/plasma/kwin/-/commit/0d46ef4936f6d1f9befa2d96b5e0f604b19a15e0