Bug 428662

Summary: System Monitor crashes when trying to open "Processes" tab
Product: [Applications] plasma-systemmonitor Reporter: Vlad Zahorodnii <vlad.zahorodnii>
Component: generalAssignee: KSysGuard Developers <ksysguard-bugs>
Status: RESOLVED FIXED    
Severity: crash CC: justin.zobel, nate, plasma-bugs-null
Priority: NOR    
Version First Reported In: unspecified   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:
Attachments: The backtrace of the crash
My config file
terminal output

Description Vlad Zahorodnii 2020-11-03 21:19:25 UTC
Created attachment 133005 [details]
The backtrace of the crash

STEPS TO REPRODUCE
1. Try to open the Processes tab

OBSERVED RESULT
Crash.

EXPECTED RESULT
No crash.

SOFTWARE/OS VERSIONS
(available in About System)
KDE Plasma Version: git master
KDE Frameworks Version: git master
Qt Version: 5.15 (from source code)
plasma-systemmonitor: 098b91556901ccb611028b3a9156de61295b664c
Comment 1 Vlad Zahorodnii 2020-11-03 21:22:24 UTC
I also see lots of

qt.core.qabstractitemmodel.checkindex: Index QModelIndex(-1,-1,0x0,QObject(0x0)) is not valid (expected valid)
qt.core.qabstractitemmodel.checkindex: Index QModelIndex(-1,-1,0x0,QObject(0x0)) is not valid (expected valid)
qt.core.qabstractitemmodel.checkindex: Index QModelIndex(-1,-1,0x0,QObject(0x0)) is not valid (expected valid)
qt.core.qabstractitemmodel.checkindex: Index QModelIndex(-1,-1,0x0,QObject(0x0)) is not valid (expected valid)
qt.core.qabstractitemmodel.checkindex: Index QModelIndex(-1,-1,0x0,QObject(0x0)) is not valid (expected valid)
qt.core.qabstractitemmodel.checkindex: Index QModelIndex(-1,-1,0x0,QObject(0x0)) is not valid (expected valid)
qt.core.qabstractitemmodel.checkindex: Index QModelIndex(-1,-1,0x0,QObject(0x0)) is not valid (expected valid)
qt.core.qabstractitemmodel.checkindex: Index QModelIndex(-1,-1,0x0,QObject(0x0)) is not valid (expected valid)

in the terminal
Comment 2 Justin Zobel 2020-11-04 01:56:07 UTC
Thanks for the report Vlad I am on ksysguard from git master as well and I can switch beteen Process Table and System Load tabs without any crash. Have you made any config changes that might assist us in replicating the crash?
Comment 3 Justin Zobel 2020-11-04 01:58:57 UTC
Apologies I didn't realise plasma-systemmonitor was a separate application but I cannot replicate it in there either.
Comment 4 Vlad Zahorodnii 2020-11-04 09:58:22 UTC
Created attachment 133010 [details]
My config file
Comment 5 Vlad Zahorodnii 2020-11-04 12:05:46 UTC
Created attachment 133020 [details]
terminal output
Comment 6 Nate Graham 2020-11-04 17:10:55 UTC
FYI Justin, if there's a crash backtrace, you generally don't need to do the NEEDSINFO WAITINGFORINFO dance since the backtrace itself is evidence enough that there's a real issue. Or at least, wait a year or so just in case it got fixed. :)

Also Vlad is one of the KWin maintainers so his bug reports are probably going to be real. :)
Comment 7 Justin Zobel 2020-11-04 23:14:37 UTC
(In reply to Nate Graham from comment #6)
> FYI Justin, if there's a crash backtrace, you generally don't need to do the
> NEEDSINFO WAITINGFORINFO dance since the backtrace itself is evidence enough
> that there's a real issue. Or at least, wait a year or so just in case it
> got fixed. :)
> 
> Also Vlad is one of the KWin maintainers so his bug reports are probably
> going to be real. :)

All good, I try to check the reporter every time but this one slipped through. Have set to confirmed as there is a backtrace.
Comment 8 Bug Janitor Service 2020-11-05 19:04:22 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-systemmonitor/-/merge_requests/65
Comment 9 David Edmundson 2020-11-11 10:40:30 UTC
Git commit 153ce2f197085be42cf1488359a5ca4fcae1e3cf by David Edmundson.
Committed on 11/11/2020 at 10:40.
Pushed by davidedmundson into branch 'master'.

Fix filter invalidation

When we have matched columns we change what filterAcceptsRow passes.
This means we need to trigger re-evaluation of filterAcceptsRow not a layout change. A
layout change implies movement, but not a change in which rows exist.

Without this KDescendantsProxyModel gets out of sync as it correctly doesn't
refresh indexes on a layout change.

M  +1    -1    src/table/ProcessSortFilterModel.cpp

https://invent.kde.org/plasma/plasma-systemmonitor/commit/153ce2f197085be42cf1488359a5ca4fcae1e3cf