Bug 481004 - System settings crashes in shortcut view if search is modified rapidly
Summary: System settings crashes in shortcut view if search is modified rapidly
Status: RESOLVED DUPLICATE of bug 480594
Alias: None
Product: systemsettings
Classification: Applications
Component: kcm_khotkeys (show other bugs)
Version: master
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords: qt6
Depends on:
Blocks:
 
Reported: 2024-02-07 11:49 UTC by Akseli Lahtinen
Modified: 2024-02-08 15:52 UTC (History)
3 users (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 Akseli Lahtinen 2024-02-07 11:49:27 UTC
SUMMARY
If the search field is modified rapidly in shortcuts view, system settings will crash.

STEPS TO REPRODUCE
1. Open shortcuts settings
2. Type "alt" in the searchbar
3. Remove the last "t" and then immediately add it back
4. Do this until system settings crashes

OBSERVED RESULT
Searching crashes

EXPECTED RESULT
No crash :)

SOFTWARE/OS VERSIONS
Operating System: Fedora Linux 39
KDE Plasma Version: 6.0.80
KDE Frameworks Version: 6.0.0
Qt Version: 6.6.0
Kernel Version: 6.7.3-200.fc39.x86_64 (64-bit)
Graphics Platform: Wayland
Processors: 12 × AMD Ryzen 5 3600 6-Core Processor
Memory: 15.5 GiB of RAM
Graphics Processor: AMD Radeon RX 6600

ADDITIONAL INFORMATION

I have a backtrace for the crash but it's kinda weird, I couldn't get all the symbols even I have them installed (I am using kdesrc-build plasma6 session)

Thread 1 "systemsettings" received signal SIGSEGV, Segmentation fault.
0x0000000002ab3ff0 in ?? ()
(gdb) bt
#0  0x0000000002ab3ff0 in ??? ()
#1  0x00007ffff514a0d3 in QQmlData::signalEmitted (object=0x75b2f0, index=4, a=0x0) at /usr/src/debug/qt6-qtdeclarative-6.6.0-1.fc39.x86_64/src/qml/qml/qqmlengine.cpp:326
#2  0x00007ffff3c01c80 in doActivate<false> (sender=0x75b2f0, signal_index=4, argv=0x0) at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/kernel/qobject.cpp:3913
#3  0x00007ffff3bf85f7 in QMetaObject::activate (sender=sender@entry=0x75b2f0, m=<optimized out>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x0)
    at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/kernel/qobject.cpp:4081
#4  0x00007ffff6440270 in QQmlDelegateModelItem::rowChanged (this=0x75b2f0)
    at /usr/src/debug/qt6-qtdeclarative-6.6.0-1.fc39.x86_64/redhat-linux-build/src/qmlmodels/QmlModels_autogen/include/moc_qqmldelegatemodel_p_p.cpp:253
#5  QQmlDelegateModelItem::setModelIndex (this=0x75b2f0, idx=<optimized out>, newRow=<optimized out>, newColumn=<optimized out>, alwaysEmit=false)
    at /usr/src/debug/qt6-qtdeclarative-6.6.0-1.fc39.x86_64/src/qmlmodels/qqmldelegatemodel.cpp:2417
#6  0x00007ffff644f282 in QQmlDelegateModel::_q_itemsInserted (this=<optimized out>, index=0, count=1)
    at /usr/src/debug/qt6-qtdeclarative-6.6.0-1.fc39.x86_64/src/qmlmodels/qqmldelegatemodel.cpp:1574
#7  0x00007ffff6453314 in QQmlDelegateModel::setRootIndex (this=0x10aa580, root=<optimized out>)
    at /usr/src/debug/qt6-qtdeclarative-6.6.0-1.fc39.x86_64/src/qmlmodels/qqmldelegatemodel.cpp:530
#8  0x00007ffff64554e8 in QQmlDelegateModel::qt_metacall (this=0x10aa580, _c=QMetaObject::WriteProperty, _id=7, _a=0x7fffffff5050)
    at /usr/src/debug/qt6-qtdeclarative-6.6.0-1.fc39.x86_64/redhat-linux-build/src/qmlmodels/QmlModels_autogen/include/moc_qqmldelegatemodel_p.cpp:621
#9  0x00007ffff51132bd in QQmlPropertyData::doMetacall<(QMetaObject::Call)2> (this=<optimized out>, argv=0x7fffffff5050, idx=<optimized out>, object=0xf27640)
    at /usr/src/debug/qt6-qtdeclarative-6.6.0-1.fc39.x86_64/redhat-linux-build/include/QtQml/6.6.0/QtQml/private/../../../../../../src/qml/qml/qqmlpropertydata_p.h:322
#10 QQmlPropertyData::doMetacall<(QMetaObject::Call)2> (this=0x7fff90513810, argv=0x7fffffff5050, idx=<optimized out>, object=0xf27640)
    at /usr/src/debug/qt6-qtdeclarative-6.6.0-1.fc39.x86_64/redhat-linux-build/include/QtQml/6.6.0/QtQml/private/../../../../../../src/qml/qml/qqmlpropertydata_p.h:317
#11 QQmlPropertyData::writeProperty (this=this@entry=0x7fff90513810, target=target@entry=0x10aa580, value=value@entry=0x7fffffff53c0, flags=..., flags@entry=...)
    at /usr/src/debug/qt6-qtdeclarative-6.6.0-1.fc39.x86_64/redhat-linux-build/include/QtQml/6.6.0/QtQml/private/../../../../../../src/qml/qml/qqmlpropertydata_p.h:340
#12 0x00007ffff51eb99c in QQmlPropertyPrivate::write (object=object@entry=0x10aa580, property=..., value=..., context=..., flags=..., flags@entry=...)
    at /usr/src/debug/qt6-qtdeclarative-6.6.0-1.fc39.x86_64/src/qml/qml/qqmlproperty.cpp:1559
#13 0x00007ffff5060c97 in QV4::QObjectWrapper::setProperty (engine=engine@entry=0xaa83f0, object=object@entry=0x10aa580, property=0x7fff90513810, value=...)
    at /usr/include/qt6/QtCore/qflags.h:73
#14 0x00007ffff5061666 in QV4::QObjectWrapper::setQmlProperty (engine=engine@entry=0xaa83f0, qmlContext=..., object=0x10aa580, name=<optimized out>, flags=flags@entry=..., value=...)
    at /usr/src/debug/qt6-qtdeclarative-6.6.0-1.fc39.x86_64/src/qml/jsruntime/qv4qobjectwrapper.cpp:465
#15 0x00007ffff5061846 in QV4::QObjectWrapper::virtualPut (m=0x7fffc45bf598, id=..., value=..., receiver=0x7fffc45bf598)
    at /usr/src/debug/qt6-qtdeclarative-6.6.0-1.fc39.x86_64/src/qml/jsruntime/qv4qobjectwrapper.cpp:837
#16 0x00007ffff502dc0d in QV4::Object::put (receiver=<optimized out>, v=..., name=<optimized out>, this=<optimized out>)
    at /usr/src/debug/qt6-qtdeclarative-6.6.0-1.fc39.x86_64/redhat-linux-build/include/QtQml/6.6.0/QtQml/private/../../../../../../src/qml/jsruntime/qv4string_p.h:140
#17 QV4::Lookup::setterFallback (l=<optimized out>, engine=0xaa83f0, object=<optimized out>, value=...)
    at /usr/src/debug/qt6-qtdeclarative-6.6.0-1.fc39.x86_64/src/qml/jsruntime/qv4lookup.cpp:591
#18 0x00007fffbf42b293 in ??? ()
#19 0x0000000000000000 in ??? ()
Comment 1 Akseli Lahtinen 2024-02-07 12:07:43 UTC
Thread 1 "systemsettings" received signal SIGSEGV, Segmentation fault.
QObjectPrivate::maybeSignalConnected (this=this@entry=0x11d7540, signalIndex=signalIndex@entry=3) at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/kernel/qobject.cpp:480
Downloading source file /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/kernel/qobject.cpp
480         SignalVector *signalVector = cd->signalVector.loadRelaxed();                                                                                                                              
(gdb) bt
#0  QObjectPrivate::maybeSignalConnected (this=this@entry=0x11d7540, signalIndex=signalIndex@entry=3) at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/kernel/qobject.cpp:480
#1  0x00007ffff3c01c9e in doActivate<false> (sender=0x1a99880, signal_index=3, argv=0x7fffffff97e8) at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/kernel/qobject.cpp:3923
#2  0x00007ffff3bf85f7 in QMetaObject::activate
    (sender=sender@entry=0x1a99880, m=m@entry=0x7ffff6498400 <QQmlDelegateModelItem::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0)
    at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/kernel/qobject.cpp:4081
#3  0x00007ffff6440257 in QQmlDelegateModelItem::modelIndexChanged (this=0x1a99880)
    at /usr/src/debug/qt6-qtdeclarative-6.6.0-1.fc39.x86_64/redhat-linux-build/src/qmlmodels/QmlModels_autogen/include/moc_qqmldelegatemodel_p_p.cpp:247
#4  QQmlDelegateModelItem::setModelIndex (this=0x1a99880, idx=<optimized out>, newRow=<optimized out>, newColumn=<optimized out>, alwaysEmit=false)
    at /usr/src/debug/qt6-qtdeclarative-6.6.0-1.fc39.x86_64/src/qmlmodels/qqmldelegatemodel.cpp:2415
#5  0x00007ffff644f282 in QQmlDelegateModel::_q_itemsInserted (this=<optimized out>, index=0, count=12)
    at /usr/src/debug/qt6-qtdeclarative-6.6.0-1.fc39.x86_64/src/qmlmodels/qqmldelegatemodel.cpp:1574
#6  0x00007ffff6453314 in QQmlDelegateModel::setRootIndex (this=0x15b0eb0, root=<optimized out>) at /usr/src/debug/qt6-qtdeclarative-6.6.0-1.fc39.x86_64/src/qmlmodels/qqmldelegatemodel.cpp:530
#7  0x00007ffff64554e8 in QQmlDelegateModel::qt_metacall (this=0x15b0eb0, _c=QMetaObject::WriteProperty, _id=7, _a=0x7fffffff9a10)
    at /usr/src/debug/qt6-qtdeclarative-6.6.0-1.fc39.x86_64/redhat-linux-build/src/qmlmodels/QmlModels_autogen/include/moc_qqmldelegatemodel_p.cpp:621
#8  0x00007ffff51132bd in QQmlPropertyData::doMetacall<(QMetaObject::Call)2> (this=<optimized out>, argv=0x7fffffff9a10, idx=<optimized out>, object=0x0)
    at /usr/src/debug/qt6-qtdeclarative-6.6.0-1.fc39.x86_64/redhat-linux-build/include/QtQml/6.6.0/QtQml/private/../../../../../../src/qml/qml/qqmlpropertydata_p.h:322
#9  QQmlPropertyData::doMetacall<(QMetaObject::Call)2> (this=0x7fff905e6590, argv=0x7fffffff9a10, idx=<optimized out>, object=0x0)
    at /usr/src/debug/qt6-qtdeclarative-6.6.0-1.fc39.x86_64/redhat-linux-build/include/QtQml/6.6.0/QtQml/private/../../../../../../src/qml/qml/qqmlpropertydata_p.h:317
#10 QQmlPropertyData::writeProperty (this=this@entry=0x7fff905e6590, target=target@entry=0x15b0eb0, value=value@entry=0x7fffffff9d80, flags=..., flags@entry=...)
    at /usr/src/debug/qt6-qtdeclarative-6.6.0-1.fc39.x86_64/redhat-linux-build/include/QtQml/6.6.0/QtQml/private/../../../../../../src/qml/qml/qqmlpropertydata_p.h:340
#11 0x00007ffff51eb99c in QQmlPropertyPrivate::write (object=object@entry=0x15b0eb0, property=..., value=..., context=..., flags=..., flags@entry=...)
    at /usr/src/debug/qt6-qtdeclarative-6.6.0-1.fc39.x86_64/src/qml/qml/qqmlproperty.cpp:1559
#12 0x00007ffff5060c97 in QV4::QObjectWrapper::setProperty (engine=engine@entry=0x83aa20, object=object@entry=0x15b0eb0, property=0x7fff905e6590, value=...) at /usr/include/qt6/QtCore/qflags.h:73
#13 0x00007ffff5061666 in QV4::QObjectWrapper::setQmlProperty (engine=engine@entry=0x83aa20, qmlContext=..., object=0x15b0eb0, name=<optimized out>, flags=flags@entry=..., value=...)
--Type <RET> for more, q to quit, c to continue without paging--c
    at /usr/src/debug/qt6-qtdeclarative-6.6.0-1.fc39.x86_64/src/qml/jsruntime/qv4qobjectwrapper.cpp:465
#14 0x00007ffff5061846 in QV4::QObjectWrapper::virtualPut (m=0x7fffc45bf590, id=..., value=..., receiver=0x7fffc45bf590)
    at /usr/src/debug/qt6-qtdeclarative-6.6.0-1.fc39.x86_64/src/qml/jsruntime/qv4qobjectwrapper.cpp:837
#15 0x00007ffff502dc0d in QV4::Object::put (receiver=<optimized out>, v=..., name=<optimized out>, this=<optimized out>)
    at /usr/src/debug/qt6-qtdeclarative-6.6.0-1.fc39.x86_64/redhat-linux-build/include/QtQml/6.6.0/QtQml/private/../../../../../../src/qml/jsruntime/qv4string_p.h:140
#16 QV4::Lookup::setterFallback (l=<optimized out>, engine=0x83aa20, object=<optimized out>, value=...) at /usr/src/debug/qt6-qtdeclarative-6.6.0-1.fc39.x86_64/src/qml/jsruntime/qv4lookup.cpp:591
#17 0x00007fffbf41d523 in ??? ()
#18 0x0000000000000000 in ??? ()
Comment 2 Akseli Lahtinen 2024-02-07 12:23:10 UTC
When I type `alt` the panels won't select any specific category. But when I erase one letter, it selects a seemingly-random category? Then, when I add that letter back, it get's confused since it's selected something that doesn't exist anymore?
Comment 3 fanzhuyifan 2024-02-08 15:52:36 UTC

*** This bug has been marked as a duplicate of bug 480594 ***