| Summary: | QML errors and crashing when removing processes with search open in tree view | ||
|---|---|---|---|
| Product: | [Applications] plasma-systemmonitor | Reporter: | nyanpasu64 <nyanpasu64> |
| Component: | general | Assignee: | KSysGuard Developers <ksysguard-bugs> |
| Status: | RESOLVED FIXED | ||
| Severity: | crash | CC: | ahiemstra, nate, plasma-bugs-null |
| Priority: | NOR | ||
| Version First Reported In: | 5.23.3 | ||
| Target Milestone: | --- | ||
| Platform: | Other | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
| Attachments: |
Backtrace of this crash, missing many symbols.
Screenshot of plasma-systemmonitor in a bugged state, with many processes missing names. endRemoveRows warnings printed by plasma-systemmonitor |
||
|
Description
nyanpasu64
2021-11-13 17:57:42 UTC
Created attachment 143600 [details]
Screenshot of plasma-systemmonitor in a bugged state, with many processes missing names.
Apparently entering a filter is not necessary for plasma-systemmonitor to bug out.
- Open plasma-systemmonitor in a console.
- Switch to tree view but don't enter a filter.
- Run 200 perl processes.
- Scroll down until you see bash and the first 10-20 perl children.
- Close the bash tab.
nyanpasu64@ryzen ~> plasma-systemmonitor
kf.kirigami: Units.devicePixelRatio is deprecated (since 5.86): This returns 1 when using Qt HiDPI scaling.
file:///usr/lib/qt/qml/org/kde/ksysguard/table/TableViewHeader.qml:211: ReferenceError: heading is not defined (exception occurred during delayed function evaluation)
file:///usr/lib/qt/qml/org/kde/kirigami.2/private/globaltoolbar/ToolBarPageHeader.qml:83:13: QML Binding: Binding loop detected for property "value"
file:///usr/lib/qt/qml/org/kde/kirigami.2/private/globaltoolbar/ToolBarPageHeader.qml:88:13: QML Binding: Binding loop detected for property "value"
QAbstractItemModel::endRemoveRows: Invalid index ( 198 , 3 ) in model ComponentCacheProxyModel(0x55ef5393eea0)
qt.core.qabstractitemmodel.checkindex: Index QModelIndex(-1,-1,0x0,QObject(0x0)) is not valid (expected valid)
file:///usr/share/ksysguard/sensorfaces/org.kde.ksysguard.processtable/contents/ui/ProcessTableView.qml:163:17: Unable to assign [undefined] to QString
Model size of -1 is less than 0
qt.core.qabstractitemmodel.checkindex: Index QModelIndex(-1,-1,0x0,QObject(0x0)) is not valid (expected valid)
file:///usr/share/ksysguard/sensorfaces/org.kde.ksysguard.processtable/contents/ui/ProcessTableView.qml:163:17: Unable to assign [undefined] to QString
Model size of -1 is less than 0
...
Created attachment 143602 [details]
endRemoveRows warnings printed by plasma-systemmonitor
Note that this crash occurs inconsistently.
I retested where I slowly scrolled through the list of processes, making sure to load all 200 perl processes. Then when I closed the Konsole tab, the entire process list went empty, a few seconds later the terminal filled with "QAbstractItemModel::endRemoveRows: Invalid index ( ### , 3 ) in model ComponentCacheProxyModel(0x5636510d77e0)" warnings (full log attached), then a few seconds later plasma-systemmonitor segfaulted.
However I tried a few more times. Sometimes the program seemed to work fine and unload the processes without any visible symptoms. One time it segfaulted anyway, without having printed errors beforehand.
For Plasma 6, we ported away from using KDescendantsProxyModel and use upstream TreeView now. This means the source of this crash is no longer used in System Monitor, so I am going to close this as fixed. |