Repository navigation
processlist: search every process, not just the top 100 by cpu - #3763
Conversation
|
@Mario-Mohar, have you been reading my feedback? This is the third time in a row I've asked that, if you'd like to work on an issue, you self-assign it first or just push in hopes it's clear. We appreciate your willingness to contribute, but DMS is built & maintained by BB and myself. If you self-assign an issue, there's no need to tag only BB each time, as either of us may already be aware of it or actively working on it. The problem with the current approach is that when you ping only one of us, the other may already be implementing the fix. In several cases, you've also announced that you're working on something that was already nearly complete internally, and the corresponding PR has arrived shortly afterward. Self-assigning first helps avoid duplicated effort, makes ownership clear, and gives everyone visibility into who's actively working on what. Please make sure you're following that process going forward.
|
|
Sorry, I missed your earlier notes, that's on me. I tried to self-assign but GitHub doesn't let me, I don't have triage rights on the repo. From now on I'll comment on the issue asking to be assigned and wait for a go from either of you before starting. Happy to close #3763 or #3764 if you already had something in progress. |
|
Nah you're good, just trying to clear up any confusion or run-ins that may occur. Again, we highly appreciate the assist! |
|
/claude review |
Claude reviewNo issues found. |
|
This one looks good if you could drop the dgop-process-search.test. Thanks again! |
|
Dropped the test file, thanks! |

Description
The process list searches
DgopService.allProcesses, but dgop is asked for only the top 100 processes sorted by CPU. On a normal system with a few hundred processes, idle ones (0% CPU) fall in and out of that set on every refresh. So a search for an idle process shows it, then "No matching processes", then only some of the matches, depending on the refresh. That is the unstable list from the report.While a process list has search text, it now asks dgop for every process (
limit: 0, which dgop treats as no limit) and refreshes right away. Without a search nothing changes, the polling keepslimit: 100. The request is reference counted inDgopService(requestFullProcessList/releaseFullProcessList), so the popout and the modal can both use it, andProcessesViewreleases it when the search is cleared, the view goes inactive or it is destroyed.Reproduced on master in a nested Hyprland session: three idle processes named
metrolist, search "metrolist", 332 processes on the machine. Captures every 2.5 s:Before: "No matching processes", 2 of 3, a different match, 1 of 3, changing with every refresh. After: all three in every capture over 20 s. Killing one of them while searching removes it right away and keeps the other two.
Type of change
Related issues
Fixes #3641
Screenshots / video
See the table above.
Checklist
I18n.tr()with translator context, reusing existing terms where possible (no new strings)make fmt, added/updated tests,make testpasses, andgo mod tidyis clean (no Go changes)make lint-qmlwith no new warningsNew
tests/dgop-process-search.test.mjspullsbuildMetaParams,requestFullProcessListandreleaseFullProcessListout of the service: limit 100 without a search, 0 while one is held, back to 100 after the last release. It fails on master. All 316 node tests pass.