Bug 414920

Summary: Plasma crashes in RunnerModel::matchesChanged() while searching
Product: [Plasma] plasmashell Reporter: Alexandr <sasha01945>
Component: generic-crashAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED FIXED    
Severity: crash CC: aleprezio2, alexander.lohnau, amoradpour77, aquasp, berni.boehm, cam-o-man, dront78, eberson.santoscosme, elementalguy10, etnguyen03+kdebugs, his.arnaud1, kakiremora, kde-bugs, kde, ken20001, lalrahim695, levy.santanna, liubomirwm, luighiavz, marcelo.leitner, mikel5764, mirchevmartin2203, nate, notmart, paolo.signorelli, plasma-bugs, rahulc93, redlefbraamhaar, rlee2878, satanin.dmitry.2020, tau0, yumasansansan
Priority: VHI Keywords: drkonqi
Version: 5.17.4   
Target Milestone: 1.0   
Platform: unspecified   
OS: Linux   
See Also: https://bugs.kde.org/show_bug.cgi?id=404502
Latest Commit: Version Fixed In: 5.26
Attachments: New crash information added by DrKonqi
long freeze while switching desktops
simple search in kwrite
double peak just opening open office
New crash information added by DrKonqi
New crash information added by DrKonqi

Description Alexandr 2019-12-07 11:25:40 UTC
Application: plasmashell (5.17.4)

Qt Version: 5.13.2
Frameworks Version: 5.64.0
Operating System: Linux 5.0.0-37-generic x86_64
Distribution: KDE neon User Edition 5.17

-- Information about the crash:
- What I was doing when the application crashed:
1) I minimized the VmWare Workstation Pro 15.5 virtual machine from full screen mode
2) Opened the widget "Application Launch Menu"
3) Started typing โ€œmuonโ€ (But only โ€œmuโ€ was entered)
After that, the environment freezes.
To restore performance, I deployed and rolled back the VM.
The second time the search works.

- Unusual behavior I noticed:
You cannot enter anything else into the search or use the application launcher menu or taskbar in any way.
It helped me move the mouse to the upper left corner to view open windows.

- Custom settings of the application:
Locale ru-RU_UTF-8
Modern application launcher menu
Time: show seconds
Taskbar (with icons and window names)
Calculator witget on panel

Touchscreen connected and not used on this test

The crash can be reproduced sometimes.

-- Backtrace (Reduced):
#7  0x00007fe5bfbb3af0 in QQmlPropertyCache::callJSFactoryMethod (args=0x7ffcf656ab90, object=0x562cc13f1900, this=0x7fe58c008bf0) at ../../include/QtQml/5.13.2/QtQml/private/../../../../../src/qml/qml/qqmlpropertycache_p.h:875
#8  QV4::QObjectWrapper::create (engine=<optimized out>, engine@entry=0x562cbe04b2b0, object=object@entry=0x562cc13f1900) at jsruntime/qv4qobjectwrapper.cpp:691
#9  0x00007fe5bfbb5e49 in QV4::QObjectWrapper::wrap_slowPath (engine=0x562cbe04b2b0, object=0x562cc13f1900) at jsruntime/qv4qobjectwrapper.cpp:623
#10 0x00007fe5bfb941cb in QV4::QObjectWrapper::wrap (engine=engine@entry=0x562cbe04b2b0, object=<optimized out>) at ../../include/QtQml/5.13.2/QtQml/private/../../../../../src/qml/jsruntime/qv4qobjectwrapper_p.h:224
#11 0x00007fe5bfc3204c in QV4::ExecutionEngine::fromVariant (this=this@entry=0x562cbe04b2b0, variant=...) at jsruntime/qv4engine.cpp:1524


The reporter indicates this bug may be a duplicate of or related to bug 413170.

Possible duplicates by query: bug 413170, bug 371268, bug 361513, bug 357590, bug 356719.

Reported using DrKonqi
Comment 1 Alexandr 2019-12-07 11:25:41 UTC
Created attachment 124356 [details]
New crash information added by DrKonqi

DrKonqi auto-attaching complete backtrace.
Comment 2 Marco Martin 2019-12-09 17:13:56 UTC
pasting inline

Thread 1 (Thread 0x7fe5c240e800 (LWP 2022)):
[KCrash Handler]
#6  0x0000000000000025 in ?? ()
#7  0x00007fe5bfbb3af0 in QQmlPropertyCache::callJSFactoryMethod (args=0x7ffcf656ab90, object=0x562cc13f1900, this=0x7fe58c008bf0) at ../../include/QtQml/5.13.2/QtQml/private/../../../../../src/qml/qml/qqmlpropertycache_p.h:875
#8  QV4::QObjectWrapper::create (engine=<optimized out>, engine@entry=0x562cbe04b2b0, object=object@entry=0x562cc13f1900) at jsruntime/qv4qobjectwrapper.cpp:691
#9  0x00007fe5bfbb5e49 in QV4::QObjectWrapper::wrap_slowPath (engine=0x562cbe04b2b0, object=0x562cc13f1900) at jsruntime/qv4qobjectwrapper.cpp:623
#10 0x00007fe5bfb941cb in QV4::QObjectWrapper::wrap (engine=engine@entry=0x562cbe04b2b0, object=<optimized out>) at ../../include/QtQml/5.13.2/QtQml/private/../../../../../src/qml/jsruntime/qv4qobjectwrapper_p.h:224
#11 0x00007fe5bfc3204c in QV4::ExecutionEngine::fromVariant (this=this@entry=0x562cbe04b2b0, variant=...) at jsruntime/qv4engine.cpp:1524
#12 0x00007fe5bfbb6199 in loadProperty (v4=0x562cbe04b2b0, object=0x562cc159e530, property=...) at jsruntime/qv4qobjectwrapper.cpp:207
#13 0x00007fe5bfbd3d4e in QV4::Moth::VME::interpret (frame=0x7ffcf656aef0, engine=0x562cbe04b2b0, code=0x7fe5923fa670 "nL") at jsruntime/qv4vme_moth.cpp:707
#14 0x00007fe5bfbd8cc6 in QV4::Moth::VME::exec (frame=frame@entry=0x7ffcf656aef0, engine=engine@entry=0x562cbe04b2b0) at jsruntime/qv4vme_moth.cpp:511
#15 0x00007fe5bfb681ec in QV4::Function::call (this=this@entry=0x562cc155cf50, thisObject=thisObject@entry=0x7fe59fbc14e8, argv=argv@entry=0x7fe59fbc1500, argc=<optimized out>, context=<optimized out>) at jsruntime/qv4function.cpp:69
#16 0x00007fe5bfcdb447 in QQmlJavaScriptExpression::evaluate (this=this@entry=0x562cc153d7d0, callData=callData@entry=0x7fe59fbc14d0, isUndefined=isUndefined@entry=0x0) at qml/qqmljavascriptexpression.cpp:211
#17 0x00007fe5bfc80fb9 in QQmlBoundSignalExpression::evaluate (this=this@entry=0x562cc153d7d0, a=a@entry=0x0) at qml/qqmlboundsignal.cpp:225
#18 0x00007fe5bfc8233b in QQmlBoundSignal_callback (e=0x562cc1545040, a=0x0) at qml/qqmlboundsignal.cpp:358
#19 0x00007fe5bfcbbc42 in QQmlNotifier::emitNotify (endpoint=<optimized out>, a=a@entry=0x0) at qml/qqmlnotifier.cpp:104
#20 0x00007fe5bfc62f99 in QQmlData::signalEmitted (object=0x562cbfefdaa0, index=<optimized out>, a=0x0) at qml/qqmlengine.cpp:887
#21 0x00007fe5bc44f0f7 in QMetaObject::activate (sender=sender@entry=0x562cbfefdaa0, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3678
#22 0x00007fe5bc44ff97 in QMetaObject::activate (sender=sender@entry=0x562cbfefdaa0, m=m@entry=0x7fe57563e7c0 <RunnerModel::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3660
#23 0x00007fe57541b670 in RunnerModel::countChanged (this=this@entry=0x562cbfefdaa0) at ./obj-x86_64-linux-gnu/applets/kicker/kickerplugin_autogen/7RBZBFH7CH/moc_runnermodel.cpp:310
#24 0x00007fe57540b48f in RunnerModel::matchesChanged (this=0x562cbfefdaa0, matches=...) at ./applets/kicker/plugin/runnermodel.cpp:244
#25 0x00007fe57541f119 in RunnerModel::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at ./obj-x86_64-linux-gnu/applets/kicker/kickerplugin_autogen/7RBZBFH7CH/moc_runnermodel.cpp:153
#26 0x00007fe5bc44f8d5 in QMetaObject::activate (sender=sender@entry=0x562cbe6e02c0, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=<optimized out>, argv@entry=0x7ffcf656ced0) at kernel/qobject.cpp:3809
#27 0x00007fe5bc44ff97 in QMetaObject::activate (sender=sender@entry=0x562cbe6e02c0, m=m@entry=0x7fe574aea8a0 <Plasma::RunnerManager::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffcf656ced0) at kernel/qobject.cpp:3660
#28 0x00007fe5748db232 in Plasma::RunnerManager::matchesChanged (this=this@entry=0x562cbe6e02c0, _t1=...) at ./obj-x86_64-linux-gnu/src/KF5Runner_autogen/include/moc_runnermanager.cpp:196
#29 0x00007fe5748df433 in Plasma::RunnerManagerPrivate::jobDone (job=..., this=0x562cc10ed4e0) at ./src/runnermanager.cpp:354
#30 Plasma::RunnerManager::qt_static_metacall (_o=<optimized out>, _id=<optimized out>, _a=<optimized out>, _c=<optimized out>) at ./obj-x86_64-linux-gnu/src/KF5Runner_autogen/include/moc_runnermanager.cpp:128
#31 0x00007fe5bc450432 in QObject::event (this=0x562cbe6e02c0, e=<optimized out>) at kernel/qobject.cpp:1260
#32 0x00007fe5bdd89eac in QApplicationPrivate::notify_helper (this=this@entry=0x562cbddddf80, receiver=receiver@entry=0x562cbe6e02c0, e=e@entry=0x562cc1551b60) at kernel/qapplication.cpp:3703
Comment 3 roger herz-fischler 2019-12-09 19:34:06 UTC
Created attachment 124406 [details]
long freeze while switching desktops
Comment 4 roger herz-fischler 2019-12-09 19:36:39 UTC
Created attachment 124407 [details]
simple search in kwrite

note how there is little cpu usage, but that the total usage is 100%
Comment 5 roger herz-fischler 2019-12-09 19:37:16 UTC
Created attachment 124408 [details]
double peak just opening open office
Comment 6 roger herz-fischler 2019-12-09 19:42:58 UTC
I have just attached three snapshots, but I have  other snapshots showing freezing for different operations over a few months period.

That it is the newest version of plasma that is at fault is virtually (no pun intended) assured by the fact that since I reinstalled Mageia version 6.1 I have not experienced these problems.

At first I thought the problem was with the chipset, but the problems persisted even though I had the chipset replaced.
Comment 7 David Edmundson 2020-08-07 12:40:57 UTC
*** Bug 425068 has been marked as a duplicate of this bug. ***
Comment 8 aleprezio2 2020-10-15 07:04:19 UTC
Created attachment 132379 [details]
New crash information added by DrKonqi

plasmashell (5.18.5) using Qt 5.13.2

- What I was doing when the application crashed:

I was searching "vlc" in  the app launcher, then I canceld the search term and, when hovering over the apps in the launcher plasma freezed & crashed.

- Unusual behavior I noticed:

Just a little freeze before the crash, I think that's expectable.

-- Backtrace (Reduced):
#5  0x00007f21004d4b3b in QQmlData::createPropertyCache(QJSEngine*, QObject*) () from /lib64/libQt5Qml.so.5
#6  0x00007f21004174ab in QV4::QObjectWrapper::create(QV4::ExecutionEngine*, QObject*) () from /lib64/libQt5Qml.so.5
#7  0x00007f21004193d3 in QV4::QObjectWrapper::wrap_slowPath(QV4::ExecutionEngine*, QObject*) () from /lib64/libQt5Qml.so.5
#8  0x00007f21004a04dc in QV4::ExecutionEngine::fromVariant(QVariant const&) () from /lib64/libQt5Qml.so.5
#9  0x00007f2100419a87 in loadProperty(QV4::ExecutionEngine*, QObject*, QQmlPropertyData const&) () from /lib64/libQt5Qml.so.5
Comment 9 Nate Graham 2021-02-22 21:10:20 UTC
*** Bug 419154 has been marked as a duplicate of this bug. ***
Comment 10 Nate Graham 2021-02-22 21:11:23 UTC
*** Bug 433397 has been marked as a duplicate of this bug. ***
Comment 11 Nate Graham 2021-02-22 21:12:39 UTC

*** This bug has been marked as a duplicate of bug 419154 ***
Comment 12 Nate Graham 2021-02-22 21:14:39 UTC
*** Bug 413170 has been marked as a duplicate of this bug. ***
Comment 13 Nate Graham 2021-02-22 21:15:13 UTC
*** Bug 415433 has been marked as a duplicate of this bug. ***
Comment 14 Nate Graham 2021-02-22 21:15:21 UTC
*** Bug 416933 has been marked as a duplicate of this bug. ***
Comment 15 Nate Graham 2021-02-22 21:15:30 UTC
*** Bug 420705 has been marked as a duplicate of this bug. ***
Comment 16 Nate Graham 2021-02-22 21:16:14 UTC
*** Bug 419154 has been marked as a duplicate of this bug. ***
Comment 17 Nate Graham 2021-02-22 21:17:07 UTC
*** Bug 404796 has been marked as a duplicate of this bug. ***
Comment 18 Nate Graham 2021-02-22 21:17:31 UTC
*** Bug 404845 has been marked as a duplicate of this bug. ***
Comment 19 Nate Graham 2021-02-22 21:17:57 UTC
*** Bug 404871 has been marked as a duplicate of this bug. ***
Comment 20 Nate Graham 2021-02-22 21:18:13 UTC
*** Bug 410232 has been marked as a duplicate of this bug. ***
Comment 21 Nate Graham 2021-02-22 21:18:28 UTC
*** Bug 413400 has been marked as a duplicate of this bug. ***
Comment 22 Nate Graham 2021-02-22 21:18:45 UTC
*** Bug 414085 has been marked as a duplicate of this bug. ***
Comment 23 Nate Graham 2021-02-22 21:19:02 UTC
*** Bug 415233 has been marked as a duplicate of this bug. ***
Comment 24 Nate Graham 2021-02-22 21:19:58 UTC
*** Bug 417975 has been marked as a duplicate of this bug. ***
Comment 25 Nate Graham 2021-02-22 21:20:08 UTC
*** Bug 418969 has been marked as a duplicate of this bug. ***
Comment 26 Nate Graham 2021-02-22 21:20:29 UTC
*** Bug 405861 has been marked as a duplicate of this bug. ***
Comment 27 Nate Graham 2021-02-22 21:21:28 UTC
*** Bug 430909 has been marked as a duplicate of this bug. ***
Comment 28 Nate Graham 2021-02-22 21:23:12 UTC
No duplicate bug reports from Plasma 5.19 or later. Very likely already fixed.

5.18 is still experiencing this and is an LTS version, but I'm not optimistic about the possibility of finding what fixed the crash and backporting it. :(
Comment 29 Ivan 2021-02-23 05:02:26 UTC
I guess, people disabled this functionality or eve deleted kde and this is the reason why you don't have any reports anymore ๐Ÿ˜…
Comment 30 Mikel Johnson 2021-02-23 09:01:52 UTC
> No duplicate bug reports from Plasma 5.19 or later. Very likely already fixed.
430909?
Comment 31 Nate Graham 2021-02-23 14:15:36 UTC
Darn, missed that one. Thanks. Removing tag and raising priority.
Comment 32 Nate Graham 2021-03-02 19:21:18 UTC
*** Bug 433705 has been marked as a duplicate of this bug. ***
Comment 33 Nate Graham 2021-03-08 23:08:13 UTC
*** Bug 418059 has been marked as a duplicate of this bug. ***
Comment 34 Nate Graham 2021-04-30 17:45:59 UTC
*** Bug 436397 has been marked as a duplicate of this bug. ***
Comment 35 Nate Graham 2021-06-08 21:04:03 UTC
*** Bug 437802 has been marked as a duplicate of this bug. ***
Comment 36 Nate Graham 2021-06-15 21:50:11 UTC
*** Bug 438669 has been marked as a duplicate of this bug. ***
Comment 37 Nate Graham 2021-08-11 14:56:48 UTC
*** Bug 440850 has been marked as a duplicate of this bug. ***
Comment 38 redlefbraamhaar 2021-09-15 17:27:34 UTC
Created attachment 141563 [details]
New crash information added by DrKonqi

plasmashell (5.22.5) using Qt 5.15.2

- What I was doing when the application crashed:

Typing something in the search bar of the start menu

-- Backtrace (Reduced):
#6  QQmlData::wasDeleted(QObject const*) (object=0x7fd74c078520) at ../../include/QtQml/5.15.2/QtQml/private/../../../../../../src/qml/qml/qqmldata_p.h:342
#7  QQmlData::wasDeleted(QObject const*) (object=0x7fd74c078520) at ../../include/QtQml/5.15.2/QtQml/private/../../../../../../src/qml/qml/qqmldata_p.h:332
#8  QV4::QObjectWrapper::wrap(QV4::ExecutionEngine*, QObject*) (object=0x7fd74c078520, engine=0x55cff001a1b0) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde29-1.3.x86_64/src/qml/jsruntime/qv4qobjectwrapper_p.h:213
#9  QV4::ExecutionEngine::fromVariant(QVariant const&) (this=0x55cff001a1b0, variant=...) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde29-1.3.x86_64/src/qml/jsruntime/qv4engine.cpp:1710
#10 0x00007fd760e71c92 in loadProperty(QV4::ExecutionEngine*, QObject*, QQmlPropertyData const&) (v4=0x55cff001a1b0, object=0x55cff3b51400, property=...) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde29-1.3.x86_64/src/qml/jsruntime/qv4qobjectwrapper.cpp:205
Comment 39 Nate Graham 2021-10-17 22:17:05 UTC
*** Bug 443825 has been marked as a duplicate of this bug. ***
Comment 40 Arjen Hiemstra 2022-09-20 13:06:42 UTC
Git commit 1477ee66f64929a04ea096b5f1e9d73b2a4bb380 by Arjen Hiemstra.
Committed on 20/09/2022 at 12:54.
Pushed by ahiemstra into branch 'master'.

kickerplugin: Only emit countChanged() once when processing matches

Currently, we can emit countChanged() multiple times which potentially
leads to problems, especially when a view is also processing row
changes.

M  +14   -4    applets/kicker/plugin/runnermodel.cpp

https://invent.kde.org/plasma/plasma-workspace/commit/1477ee66f64929a04ea096b5f1e9d73b2a4bb380
Comment 41 Arjen Hiemstra 2022-09-20 13:27:53 UTC
Git commit 287809fe0a51c8dc862469d060f1e23a367b010e by Arjen Hiemstra.
Committed on 20/09/2022 at 13:27.
Pushed by ahiemstra into branch 'Plasma/5.26'.

kickerplugin: Only emit countChanged() once when processing matches

Currently, we can emit countChanged() multiple times which potentially
leads to problems, especially when a view is also processing row
changes.

M  +14   -4    applets/kicker/plugin/runnermodel.cpp

https://invent.kde.org/plasma/plasma-workspace/commit/287809fe0a51c8dc862469d060f1e23a367b010e
Comment 42 Nate Graham 2022-09-20 16:33:01 UTC
We think that patch may fix it, but it's hard to tell since no one could consistently reproduce the issue. I'm going to mark this as resolved now, but if anyone gets a new crash in RunnerModel::matchesChanged() while searching while using Plasma 5.26 or later, please do feel free to re-open it! But only if your crash has that line in the backtrace please. Thanks!