Bug 516488 - Shortcuts crashes when typing a character and a plus sign in the search bar
Summary: Shortcuts crashes when typing a character and a plus sign in the search bar
Status: RESOLVED FIXED
Alias: None
Product: systemsettings
Classification: Applications
Component: kcm_keyboard (other bugs)
Version First Reported In: 6.6.0
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
: 516763 (view as bug list)
Depends on:
Blocks:
 
Reported: 2026-02-22 00:56 UTC by Soloman
Modified: 2026-02-28 00:15 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In: 6.6.2
Sentry Crash Report: crash-reports.kde.org/organizations/kde/issues/368952


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Soloman 2026-02-22 00:56:54 UTC
SUMMARY
I'm not sure if this is duplicate, but I updated to Plasma 6.6.0 for features. I installed Karousel for scrollable window manager, but I found a bug that crashes the shortcuts window when typing a plus sign in-between a case character

STEPS TO REPRODUCE
1. Open settings
2. Go to shortcuts
3. Type "a+b" in the search bar, delete the last character, then repeat typing multiple single characters until it crashes.

OBSERVED RESULT
I open the Konsole and launch the "kcmshell6 kcm_keys" command to see the log, and this is the result.

"qrc:/kcm/kcm_keys/main.qml:261:33: Unable to assign [undefined] to bool
Segmentation fault         (core dumped) kcmshell6 kcm_keys"

EXPECTED RESULT
The crash should be fixed in later versions.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Arch Linux
KDE Plasma Version: 6.6.0
KDE Frameworks Version: 6.23.0
Qt Version: 6.10.2
Comment 1 Akseli Lahtinen 2026-02-23 13:17:40 UTC
Can confirm 

Operating System: KDE Linux 2026-02-22
KDE Plasma Version: 6.6.80
KDE Frameworks Version: 6.24.0
Qt Version: 6.10.2
Kernel Version: 6.18.9-zen1-2-zen (64-bit)
Graphics Platform: Wayland
Processors: 12 × AMD Ryzen 5 3600 6-Core Processor
Memory: 16 GiB of RAM (15.5 GiB usable)
Graphics Processor: AMD Radeon RX 6600
Comment 2 Akseli Lahtinen 2026-02-23 15:57:20 UTC
Backtrace I got for this, something is missing, will need to run this through gdb to hopefully get more info

Program terminated with signal SIGSEGV, Segmentation fault.
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0)
    at pthread_kill.c:44
44            return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0;
[Current thread is 1 (Thread 0x7f90df41c080 (LWP 47134))]
(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  0x00007f90e57acaf3 in __pthread_kill_internal (threadid=<optimized out>, signo=11) at pthread_kill.c:89
#2  0x00007f90e57521a0 in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26
#3  0x00007f90e7822e65 in KCrash::defaultCrashHandler (sig=11)
    at /usr/src/debug/kde-banana-kcrash-git/kcrash/src/kcrash.cpp:623
#4  0x00007f90e57522d0 in <signal handler called> () at /usr/lib/libc.so.6
#5  std::__atomic_base<QObjectPrivate::Connection*>::load (this=0xf1, __m=std::memory_order_acquire)
    at /usr/include/c++/15.2.1/bits/atomic_base.h:828
#6  std::atomic<QObjectPrivate::Connection*>::load (this=0xf1, __m=std::memory_order_acquire)
    at /usr/include/c++/15.2.1/atomic:586
#7  QAtomicOps<QObjectPrivate::Connection*>::loadAcquire<QObjectPrivate::Connection*>
    (_q_value=<error reading variable: Cannot access memory at address 0xf1>)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qatomic_cxx11.h:215
#8  QBasicAtomicPointer<QObjectPrivate::Connection>::loadAcquire (this=0xf1)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qbasicatomic.h:178
#9  QObjectPrivate::maybeSignalConnected (this=0x7f90e58fbb48 <main_arena+136>, signalIndex=4)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:458
#10 0x00007f90e5e8fbae in doActivate<false> (sender=0x563834d49540, signal_index=4, argv=0x7fffa4a9f308)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4172
#11 0x00007f90e53ab477 in QQmlDelegateModelItem::rowChanged (this=0x563834d49540)
    at /usr/src/debug/qt6-declarative/build/src/qmlmodels/QmlModels_autogen/include/moc_qqmldelegatemodel_p_p.cpp:163
#12 QQmlDelegateModelItem::setModelIndex
    (this=0x563834d49540, idx=<optimized out>, newRow=<optimized out>, newColumn=<optimized out>, alwaysEmit=false)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qmlmodels/qqmldelegatemodel.cpp:2548
#13 0x00007f90e53a7c8a in QQmlDelegateModel::_q_itemsInserted
    (this=this@entry=0x563832d38290, index=index@entry=0, count=count@entry=1)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qmlmodels/qqmldelegatemodel.cpp:1687
#14 0x00007f90e53a884d in QQmlDelegateModel::setRootIndex (this=0x563832d38290, root=<optimized out>)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qmlmodels/qqmldelegatemodel.cpp:534
#15 0x00007f90e53bea22 in QQmlDelegateModel::qt_metacall
    (this=0x563832d38290, _c=QMetaObject::WriteProperty, _id=7, _a=0x7fffa4a9f540)
    at /usr/src/debug/qt6-declarative/build/src/qmlmodels/QmlModels_autogen/include/moc_qqmldelegatemodel_p.cpp:372
#16 0x00007f90e7d45513 in QQmlPropertyData::doMetacall<(QMetaObject::Call)2>
    (this=<optimized out>, object=<optimized out>, idx=<optimized out>, argv=0x7fffa4a9f540)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlpropertydata_p.h:397
#17 QQmlPropertyData::doMetacall<(QMetaObject::Call)2>
--Type <RET> for more, q to quit, c to continue without paging--c
    (this=<optimized out>, object=<optimized out>, idx=<optimized out>, argv=0x7fffa4a9f540)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlpropertydata_p.h:392
#18 QQmlPropertyData::writeProperty (this=<optimized out>, target=<optimized out>, value=<optimized out>, flags=...)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlpropertydata_p.h:415
#19 0x00007f90e7e1e638 in QQmlPropertyPrivate::write
    (object=0x563832d38290, property=..., value=..., context=..., flags=...)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlproperty.cpp:1956
#20 0x00007f90e7cbe52f in QV4::QObjectWrapper::setProperty
    (engine=engine@entry=0x563831a50ab0, object=object@entry=0x563832d38290, property=0x7f90906ff3f0, value=...)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:795
#21 0x00007f90e7cbef71 in QV4::QObjectWrapper::setQmlProperty
    (engine=engine@entry=0x563831a50ab0, qmlContext=..., object=0x563832d38290, name=name@entry=0x7f90adfde5b0, flags=..., 
    flags@entry=..., value=...) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:580
#22 0x00007f90e7cbf118 in QV4::QObjectWrapper::virtualPut (m=0x7f90adfde5a0, id=..., value=..., receiver=0x7f90adfde5a0)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:980
#23 0x00007f90e7c9341d in QV4::Object::put (receiver=<optimized out>, this=<optimized out>, name=<optimized out>, v=...)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4string_p.h:141
#24 QV4::Lookup::setterFallback (lookup=0x563832354c88, engine=0x563831a50ab0, object=<optimized out>, value=...)
    at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4lookup.cpp:664
#25 0x00007f907028f683 in ??? ()
#26 0x00007fffa4aa0140 in ??? ()
#27 0x0000563831a50ab0 in ??? ()
#28 0x0000000000000000 in ??? ()
Comment 3 Bug Janitor Service 2026-02-24 14:30:46 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/3575
Comment 4 Nicolas Fella 2026-02-26 17:51:07 UTC
*** Bug 516607 has been marked as a duplicate of this bug. ***
Comment 5 Nicolas Fella 2026-02-26 17:51:32 UTC
*** Bug 516763 has been marked as a duplicate of this bug. ***
Comment 6 Akseli Lahtinen 2026-02-27 14:38:31 UTC
Git commit e6023ff02ec3b1f3f081b07f6b942cfb2b9c0793 by Akseli Lahtinen.
Committed on 27/02/2026 at 14:08.
Pushed by akselmo into branch 'master'.

keys/FilteredModel: Remove deprecated invalidation, check if currentItem exists

invalidateFilter is deprecated,  begin/endFilterChange instead.

During deletion or rapid changes, currentItem can be null.
In those cases, reset the index to -1 and return early to avoid working
on null item.

This fixes crashing when user changes search filter rapidly.
Related: bug 516607

M  +4    -2    kcms/keys/filteredmodel.cpp
M  +7    -1    kcms/keys/ui/main.qml

https://invent.kde.org/plasma/plasma-desktop/-/commit/e6023ff02ec3b1f3f081b07f6b942cfb2b9c0793
Comment 7 Akseli Lahtinen 2026-02-27 15:31:04 UTC
Git commit 7160d3bee99eda83c934a1a638cbb4d6cd52e91d by Akseli Lahtinen.
Committed on 27/02/2026 at 14:40.
Pushed by akselmo into branch 'Plasma/6.6'.

keys/FilteredModel: Remove deprecated invalidation, check if currentItem exists

invalidateFilter is deprecated,  begin/endFilterChange instead.

During deletion or rapid changes, currentItem can be null.
In those cases, reset the index to -1 and return early to avoid working
on null item.

This fixes crashing when user changes search filter rapidly.
Related: bug 516607
(cherry picked from commit e6023ff02ec3b1f3f081b07f6b942cfb2b9c0793)

M  +4    -2    kcms/keys/filteredmodel.cpp
M  +7    -1    kcms/keys/ui/main.qml

https://invent.kde.org/plasma/plasma-desktop/-/commit/7160d3bee99eda83c934a1a638cbb4d6cd52e91d