Public issue detail

Runaway CPU investigation for htop: unknown userspace loop at lock_next_vma

htop is stuck in a likely unclassified userspace loop: 10.31% of sampled CPU passed through lock_next_vma, with repeated no dominant syscall sample was captured.

highpackage: htopsource: htopscore: 106reports: 2patch attempt ready

Last seen: 2026-04-03 22:55 UTC. Public JSON: /v1/issues/019d3a17-ed96-71d2-b0d6-b5e31a22daa2

Pull-request-ready diff

This is the current best public patch attempt for the issue. The downloadable .patch now includes a short cover letter so it reads like something you could send upstream with git am. If you only want the raw diff, grab the .diff instead.

best patchcreated: 2026-03-30 16:45 UTCvalidation: ready

htop likely remains stuck in an unclassified userspace loop. A diagnosis report and patch proposal were created locally.

Suggested subject

linux: preserve deleted-library flag during LRS-only maps scans

Commit message.

Preserve `usesDeletedLib` during LRS-only `/proc/<pid>/maps` refreshes and add a separate deleted-library recheck timestamp. This keeps the throttled maps-scan change from clearing a valid deleted-library state during unrelated M_LRS refreshes.

Problem. htop is stuck in a likely unclassified userspace loop: 10.31% of sampled CPU passed through lock_next_vma, with repeated no dominant syscall sample was captured.

How this patch connects to the issue.

Perf evidence for this issue was dominated by `lock_next_vma` and other kernel-side map-walking symbols, which points to repeated `/proc/<pid>/maps` scanning rather than a pure userspace hot loop. The patch separates deleted-library checks from the M_LRS refresh cadence and keeps LRS-only scans from clearing `usesDeletedLib`, so the reduced scan rate no longer regresses stale-library highlighting.

Files touched

  • linux/LinuxProcess.h
  • linux/LinuxProcessTable.c

Validation

  • Fixer marked this proposal `ready` on 2026-03-30 16:45 UTC.
  • The underlying issue cluster has 2 report(s) and was last seen 2026-04-03 22:55 UTC.
  • The published diff touches linux/LinuxProcess.h, linux/LinuxProcessTable.c.
  • `sh autogen.sh`.
  • `./configure`.
  • `make -j2`.
  • The build completed successfully.
  • Interactive perf/runtime validation was not run in this environment.
--- a/linux/LinuxProcess.h
+++ b/linux/LinuxProcess.h
@@ -107,6 +107,7 @@
    unsigned long ctxt_diff;
    char* secattr;
    unsigned long long int last_mlrs_calctime;
+   unsigned long long int last_deleted_lib_calctime;
 
    /* Total GPU time used in nano seconds */
    unsigned long long int gpu_time;
--- a/linux/LinuxProcessTable.c
+++ b/linux/LinuxProcessTable.c
@@ -724,7 +724,8 @@
 static void LinuxProcessTable_readMaps(LinuxProcess* process, openat_arg_t procFd, const LinuxMachine* host, bool calcSize, bool checkDeletedLib) {
    Process* proc = (Process*)process;
 
-   proc->usesDeletedLib = false;
+   if (checkDeletedLib)
+      proc->usesDeletedLib = false;
 
    FILE* mapsfile = fopenat(procFd, "maps", "r");
    if (!mapsfile)
@@ -1638,19 +1639,42 @@
 
       {
          bool prev = proc->usesDeletedLib;
-
-         if (!proc->isKernelThread && !proc->isUserlandThread &&
-             ((ss->flags & PROCESS_FLAG_LINUX_LRS_FIX) || (settings->highlightDeletedExe && !proc->procExeDeleted && isOlderThan(proc, 10)))) {
-
-            // Check if we really should recalculate the M_LRS value for this process
-            uint64_t passedTimeInMs = host->realtimeMs - lp->last_mlrs_calctime;
-
-            uint64_t recheck = ((uint64_t)rand()) % 2048;
-
-            if (passedTimeInMs > recheck) {
-               lp->last_mlrs_calctime = host->realtimeMs;
-               LinuxProcessTable_readMaps(lp, procFd, lhost, ss->flags & PROCESS_FLAG_LINUX_LRS_FIX, settings->highlightDeletedExe);
+         if (!proc->isKernelThread && !proc->isUserlandThread) {
+            bool checkLrs = false;
+            bool checkDeletedLib = false;
+            const bool checkForDeletedLib = settings->highlightDeletedExe && !proc->procExeDeleted && isOlderThan(proc, 10);
+            const bool checkThisProcessForMaps = (ss->flags & PROCESS_FLAG_LINUX_LRS_FIX) || checkForDeletedLib;
+
+            if (ss->flags & PROCESS_FLAG_LINUX_LRS_FIX) {
+               // Check if we really should recalculate the M_LRS value for this process.
+               uint64_t passedTimeInMs = host->realtimeMs - lp->last_mlrs_calctime;
+               uint64_t recheck = ((uint64_t)rand()) % 2048;
+
+               checkLrs = passedTimeInMs > recheck;
             }
+
+            if (checkForDeletedLib && !proc->usesDeletedLib) {
+               // Check for deleted libraries less frequently than regular M_LRS scans.
+               const uint64_t deletedLibCheckIntervalMs = 10000;
+               uint64_t passedTimeInMs = host->realtimeMs - lp->last_deleted_lib_calctime;
+               uint64_t recheck = ((uint64_t)rand()) % 2048;
+
+               checkDeletedLib = passedTimeInMs > (deletedLibCheckIntervalMs + recheck);
+            }
+
+            if (checkLrs || checkDeletedLib) {
+               if (checkLrs)
+                  lp->last_mlrs_calctime = host->realtimeMs;
+               if (checkDeletedLib)
+                  lp->last_deleted_lib_calctime = host->realtimeMs;
+
+               LinuxProcessTable_readMaps(lp, procFd, lhost, checkLrs, checkDeletedLib);
+            } else if (!settings->highlightDeletedExe || proc->procExeDeleted) {
+               proc->usesDeletedLib = false;
+            } else if (!checkThisProcessForMaps) {
+               lp->m_lrs = 0;
+            }
+
          } else {
             /* Copy from process structure in threads and reset if setting got disabled */
             proc->usesDeletedLib = (proc->isUserlandThread && mainTask) ? mainTask->super.usesDeletedLib : false;

Technical snapshot

This is the stack-shaped slice and hot path Fixer captured while the process was spinning.

Sampled wait stack

  • Command: htop
  • Why Fixer classified it this way: The process is demonstrably CPU-hot, but the current syscall and symbol sample does not point to a single dominant loop family yet.
  • Wait site: poll_schedule_timeout.constprop.0
  • Hot path: lock_next_vma (10.31% sampled CPU)
  • Package: htop
poll_schedule_timeout.constprop.0
do_sys_poll
__x64_sys_poll
do_syscall_64
entry_SYSCALL_64_after_hwframe

Possible duplicates

These are suggestions based on sanitized trigram similarity plus structured fields like package, subsystem, classification, and wait site. They are not auto-merged.

sshd-session is stuck in a likely unclassified userspace loop: 21.97% of sampled CPU passed through unmap_vmas, with repeated thread backtraces show 1 thread(s) around 0x00007f8fa7c9a7d2 in ?? () from target:<path>.

highpackage: openssh-serversource: opensshscore: 106reports: 2patch attempt readysimilarity: 71%

Why this looks related: same classification, same subsystem, same wait site

Last seen: 2026-05-18 09:57 UTC. Public page: /issues/019e3974-86e3-7021-8ac6-1c08dfe2d29d. Public JSON: /v1/issues/019e3974-86e3-7021-8ac6-1c08dfe2d29d

sshd-session is stuck in a likely unclassified userspace loop: 29.13% of sampled CPU passed through __vma_start_write, with repeated thread backtraces show 1 thread(s) around 0x00007fee4ee7b7d2 in ?? () from target:<path>.

highpackage: openssh-serversource: opensshscore: 106reports: 2patch attempt readysimilarity: 71%

Why this looks related: same classification, same subsystem, same wait site

Last seen: 2026-05-18 12:25 UTC. Public page: /issues/019e2aa0-b495-7700-93f0-5ded04669259. Public JSON: /v1/issues/019e2aa0-b495-7700-93f0-5ded04669259

sshd-session is stuck in a likely unclassified userspace loop: 100.00% of sampled CPU passed through ima_file_free, with repeated thread backtraces show 1 thread(s) around 0x00007f334669a7d2 in ?? () from target:<path>.

highpackage: openssh-serversource: opensshscore: 106reports: 2patch attempt readysimilarity: 69%

Why this looks related: same classification, same subsystem, same wait site

Last seen: 2026-05-18 21:42 UTC. Public page: /issues/019e3c71-9279-7240-8251-2d134a2b17cb. Public JSON: /v1/issues/019e3c71-9279-7240-8251-2d134a2b17cb

sshd-session is stuck in a likely unclassified userspace loop: 9.84% of sampled CPU passed through xas_start, with repeated thread backtraces show 1 thread(s) around 0x00007f145209a7d2 in ?? () from target:<path>.

highpackage: openssh-serversource: opensshscore: 106reports: 2patch attempt readysimilarity: 69%

Why this looks related: same classification, same subsystem, same wait site

Last seen: 2026-05-14 01:31 UTC. Public page: /issues/019dfdb9-5421-7070-98e0-7dd4cb5e6f6e. Public JSON: /v1/issues/019dfdb9-5421-7070-98e0-7dd4cb5e6f6e

sshd-session is stuck in a likely unclassified userspace loop: 11.40% of sampled CPU passed through adler32_z, with repeated thread backtraces show 1 thread(s) around 0x00007f4cecc9a7d2 in ?? () from target:<path>.

highpackage: openssh-serversource: opensshscore: 106reports: 2patch attempt readysimilarity: 69%

Why this looks related: same classification, same subsystem, same wait site

Last seen: 2026-05-13 02:03 UTC. Public page: /issues/019e1a88-12bc-7f81-8d0d-5715f7ebb4c4. Public JSON: /v1/issues/019e1a88-12bc-7f81-8d0d-5715f7ebb4c4

sshd-session is stuck in a likely unclassified userspace loop: 100.00% of sampled CPU passed through netlink_create, with repeated thread backtraces show 1 thread(s) around 0x00007fac17a9a7d2 in ?? () from target:<path>.

highpackage: openssh-serversource: opensshscore: 106reports: 2patch attempt readysimilarity: 69%

Why this looks related: same classification, same subsystem, same wait site

Last seen: 2026-05-13 09:36 UTC. Public page: /issues/019e2078-d1b9-7152-8626-a0548cba572a. Public JSON: /v1/issues/019e2078-d1b9-7152-8626-a0548cba572a

Worker outcome summary

This issue has 9 recorded worker attempts. Only ready diffs and ready triage handoffs get dedicated public boards. Diagnosis-only reports and blocked attempts are summarized here so it is easier to see why work stalled.

1 ready patch attempts
1 ready triage handoffs
7 failed patch attempts

No diagnosis-only reports, explained impossible attempts, or other attempt states.

Most common blockers

  • patch proposal did not complete cleanly (7 attempts)
  • workspace-acquisition (1 attempt)

Published attempts

ready triage handoff

triage

htop likely remains stuck in an unclassified userspace loop. A diagnosis report was created even though no patchable workspace was available: could not acquire a workspace for external package htop; no Debian source package or cloneable upstream repository is available

state: readycreated: 2026-04-01 21:20 UTCvalidation: ready

Why it stopped

workspace-acquisition

Handoff

Likely owner: htop

Reason: workspace-acquisition

Suggested bug target: https://htop.dev/

  • File an upstream or vendor issue with the diagnosis bundle and package metadata.
  • Include the workspace acquisition note so maintainers know why no local source patch was attempted.

ready patch attempt

patch

htop likely remains stuck in an unclassified userspace loop. A diagnosis report and patch proposal were created locally.

state: readycreated: 2026-03-30 16:45 UTCvalidation: ready
Published session

Prompt

## Plan Pass

You are planning a fixer patch before any edits happen.

Read the evidence bundle at `./evidence.json`. The prepared workspace is `./workspace` and it was acquired via `debian-source`. The original pre-edit snapshot is available at `./source` if you need to inspect it. Inspect the relevant code, but do not edit files in this pass.

Return a short markdown plan with these exact sections:

## Problem
## Proposed Subject
## Patch Plan
## Risks
## Validation

The plan must explain how the proposed code change addresses the observed issue evidence, call out any prior Fixer patch that should be improved or replaced, and reject awkward control flow such as avoidable `goto` if there is a cleaner bounded alternative.

## Patch Pass

You are working on a bounded fixer proposal.

Read the evidence bundle at `./evidence.json`. The prepared workspace is `./workspace` and it was acquired via `debian-source`. Produce the smallest reasonable patch for the target repository, keep the change upstreamable, prefer the clearest control flow available, and do not keep avoidable `goto` when a simpler structure would read better. The final explanation must connect the observed issue evidence to the actual code change, not just paraphrase the diff.

Start by explaining the likely root cause from the collected perf, strace, and /proc evidence. If you cannot land a safe patch, leave a diagnosis that is strong enough for an upstream bug report. 

Keep the change narrowly scoped and summarize validation clearly.

In every authoring pass, your final response must start with `Subject: <single-line git commit subject>` and then include these markdown sections exactly:

## Commit Message
A short upstream-friendly explanation of what changed and why.

## Issue Connection
Explain how the code change addresses the observed issue evidence instead of merely paraphrasing the diff.

## Validation
List the checks you ran, or say clearly that you could not run them.

Before editing, read the plan at `./plan-output.txt` and follow it unless the code proves part of it wrong. If you change course, say so explicitly in the final write-up instead of silently drifting from the plan.

## Review Pass 1

You are reviewing a freshly generated fixer patch.

Read the evidence bundle at `./evidence.json`. The prepared workspace is `./workspace` and it was acquired via `debian-source`. Review the first patch pass. The original pre-edit snapshot is available at `./source` for diffing. The latest author response is at `./patch-output.txt`. Inspect the current code and changed paths like a strict code reviewer. Focus on correctness, regressions, maintainability, awkward control flow such as avoidable `goto`, missing validation, weak or non-gittable commit message text, and explanations that fail to connect the observed issue evidence to the code change.

Do not apply code changes in this pass.

Return a short markdown review report. The first non-empty line must be exactly one of:

RESULT: ok
RESULT: fix-needed

If you choose `RESULT: fix-needed`, add a `## Findings` section with concrete, actionable items.

## Refinement Pass 1

You are refining a fixer patch after an explicit code review.

Read the evidence bundle at `./evidence.json`. The prepared workspace is `./workspace` and it was acquired via `debian-source`. Read the latest author response at `./patch-output.txt`. Read the review report at `./review-1-output.txt`. This is refinement round 1. The original pre-edit snapshot is available at `./source` if you need to compare the current patch against it. Re-read the planning pass at `./plan-output.txt` before editing. Address the review findings with the smallest reasonable follow-up changes. Keep the patch upstream-friendly, avoid awkward control flow when a simpler structure will do, keep the final response gittable, run relevant tests if available, and summarize which review findings you addressed.

In every authoring pass, your final response must start with `Subject: <single-line git commit subject>` and then include these markdown sections exactly:

## Commit Message
A short upstream-friendly explanation of what changed and why.

## Issue Connection
Explain how the code change addresses the observed issue evidence instead of merely paraphrasing the diff.

## Validation
List the checks you ran, or say clearly that you could not run them.

## Review Pass 2

You are reviewing a freshly generated fixer patch.

Read the evidence bundle at `./evidence.json`. The prepared workspace is `./workspace` and it was acquired via `debian-source`. Review the patch again after the latest refinement. The original pre-edit snapshot is available at `./source` for diffing. The latest author response is at `./refine-1-output.txt`. Inspect the current code and changed paths like a strict code reviewer. Focus on correctness, regressions, maintainability, awkward control flow such as avoidable `goto`, missing validation, weak or non-gittable commit message text, and explanations that fail to connect the observed issue evidence to the code change.

Do not apply code changes in this pass.

Return a short markdown review report. The first non-empty line must be exactly one of:

RESULT: ok
RESULT: fix-needed

If you choose `RESULT: fix-needed`, add a `## Findings` section with concrete, actionable items.

Response

Subject: linux: preserve deleted-library flag during LRS-only maps scans

## Commit Message
Preserve `usesDeletedLib` during LRS-only `/proc/<pid>/maps` refreshes and add a separate deleted-library recheck timestamp. This keeps the throttled maps-scan change from clearing a valid deleted-library state during unrelated M_LRS refreshes.

## Issue Connection
Perf evidence for this issue was dominated by `lock_next_vma` and other kernel-side map-walking symbols, which points to repeated `/proc/<pid>/maps` scanning rather than a pure userspace hot loop. The patch separates deleted-library checks from the M_LRS refresh cadence and keeps LRS-only scans from clearing `usesDeletedLib`, so the reduced scan rate no longer regresses stale-library highlighting.

## Validation
- `sh autogen.sh`
- `./configure`
- `make -j2`
- The build completed successfully.
- Interactive perf/runtime validation was not run in this environment.

Diff

--- a/linux/LinuxProcess.h
+++ b/linux/LinuxProcess.h
@@ -107,6 +107,7 @@
    unsigned long ctxt_diff;
    char* secattr;
    unsigned long long int last_mlrs_calctime;
+   unsigned long long int last_deleted_lib_calctime;
 
    /* Total GPU time used in nano seconds */
    unsigned long long int gpu_time;
--- a/linux/LinuxProcessTable.c
+++ b/linux/LinuxProcessTable.c
@@ -724,7 +724,8 @@
 static void LinuxProcessTable_readMaps(LinuxProcess* process, openat_arg_t procFd, const LinuxMachine* host, bool calcSize, bool checkDeletedLib) {
    Process* proc = (Process*)process;
 
-   proc->usesDeletedLib = false;
+   if (checkDeletedLib)
+      proc->usesDeletedLib = false;
 
    FILE* mapsfile = fopenat(procFd, "maps", "r");
    if (!mapsfile)
@@ -1638,19 +1639,42 @@
 
       {
          bool prev = proc->usesDeletedLib;
-
-         if (!proc->isKernelThread && !proc->isUserlandThread &&
-             ((ss->flags & PROCESS_FLAG_LINUX_LRS_FIX) || (settings->highlightDeletedExe && !proc->procExeDeleted && isOlderThan(proc, 10)))) {
-
-            // Check if we really should recalculate the M_LRS value for this process
-            uint64_t passedTimeInMs = host->realtimeMs - lp->last_mlrs_calctime;
-
-            uint64_t recheck = ((uint64_t)rand()) % 2048;
-
-            if (passedTimeInMs > recheck) {
-               lp->last_mlrs_calctime = host->realtimeMs;
-               LinuxProcessTable_readMaps(lp, procFd, lhost, ss->flags & PROCESS_FLAG_LINUX_LRS_FIX, settings->highlightDeletedExe);
+         if (!proc->isKernelThread && !proc->isUserlandThread) {
+            bool checkLrs = false;
+            bool checkDeletedLib = false;
+            const bool checkForDeletedLib = settings->highlightDeletedExe && !proc->procExeDeleted && isOlderThan(proc, 10);
+            const bool checkThisProcessForMaps = (ss->flags & PROCESS_FLAG_LINUX_LRS_FIX) || checkForDeletedLib;
+
+            if (ss->flags & PROCESS_FLAG_LINUX_LRS_FIX) {
+               // Check if we really should recalculate the M_LRS value for this process.
+               uint64_t passedTimeInMs = host->realtimeMs - lp->last_mlrs_calctime;
+               uint64_t recheck = ((uint64_t)rand()) % 2048;
+
+               checkLrs = passedTimeInMs > recheck;
             }
+
+            if (checkForDeletedLib && !proc->usesDeletedLib) {
+               // Check for deleted libraries less frequently than regular M_LRS scans.
+               const uint64_t deletedLibCheckIntervalMs = 10000;
+               uint64_t passedTimeInMs = host->realtimeMs - lp->last_deleted_lib_calctime;
+               uint64_t recheck = ((uint64_t)rand()) % 2048;
+
+               checkDeletedLib = passedTimeInMs > (deletedLibCheckIntervalMs + recheck);
+            }
+
+            if (checkLrs || checkDeletedLib) {
+               if (checkLrs)
+                  lp->last_mlrs_calctime = host->realtimeMs;
+               if (checkDeletedLib)
+                  lp->last_deleted_lib_calctime = host->realtimeMs;
+
+               LinuxProcessTable_readMaps(lp, procFd, lhost, checkLrs, checkDeletedLib);
+            } else if (!settings->highlightDeletedExe || proc->procExeDeleted) {
+               proc->usesDeletedLib = false;
+            } else if (!checkThisProcessForMaps) {
+               lp->m_lrs = 0;
+            }
+
          } else {
             /* Copy from process structure in threads and reset if setting got disabled */
             proc->usesDeletedLib = (proc->isUserlandThread && mainTask) ? mainTask->super.usesDeletedLib : false;

failed patch attempt

patch

htop likely remains stuck in an unclassified userspace loop. The diagnosis was captured, but the patch proposal did not complete cleanly.

state: failedcreated: 2026-03-29 16:38 UTCvalidation: failed

Why it stopped

patch proposal did not complete cleanly

Collected context

  • This older failed attempt predates structured patch failure capture, so Fixer only retained the diagnosis and workspace context.
  • Subsystem: runaway-process
  • Diagnosis family: unknown-userspace-loop
  • Hot path: lock_next_vma
  • Command: htop
  • Source package: htop
  • Workspace source: debian-source
  • Workspace acquisition: Fetched Debian source package via apt-get source.
  • Homepage: https://htop.dev/
  • Implicated packages: linux-image-6.19.8+deb14-amd64

The process is demonstrably CPU-hot, but the current syscall and symbol sample does not point to a single dominant loop family yet.

failed patch attempt

patch

htop likely remains stuck in an unclassified userspace loop. The diagnosis was captured, but the patch proposal did not complete cleanly.

state: failedcreated: 2026-03-29 15:26 UTCvalidation: failed

Why it stopped

patch proposal did not complete cleanly

Collected context

  • This older failed attempt predates structured patch failure capture, so Fixer only retained the diagnosis and workspace context.
  • Subsystem: runaway-process
  • Diagnosis family: unknown-userspace-loop
  • Hot path: lock_next_vma
  • Command: htop
  • Source package: htop
  • Workspace source: debian-source
  • Workspace acquisition: Fetched Debian source package via apt-get source.
  • Homepage: https://htop.dev/
  • Implicated packages: linux-image-6.19.8+deb14-amd64

The process is demonstrably CPU-hot, but the current syscall and symbol sample does not point to a single dominant loop family yet.

failed patch attempt

patch

htop likely remains stuck in an unclassified userspace loop. The diagnosis was captured, but the patch proposal did not complete cleanly.

state: failedcreated: 2026-03-29 15:24 UTCvalidation: failed

Why it stopped

patch proposal did not complete cleanly

Collected context

  • This older failed attempt predates structured patch failure capture, so Fixer only retained the diagnosis and workspace context.
  • Subsystem: runaway-process
  • Diagnosis family: unknown-userspace-loop
  • Hot path: lock_next_vma
  • Command: htop
  • Source package: htop
  • Workspace source: debian-source
  • Workspace acquisition: Fetched Debian source package via apt-get source.
  • Homepage: https://htop.dev/
  • Implicated packages: linux-image-6.19.8+deb14-amd64

The process is demonstrably CPU-hot, but the current syscall and symbol sample does not point to a single dominant loop family yet.

failed patch attempt

patch

htop likely remains stuck in an unclassified userspace loop. The diagnosis was captured, but the patch proposal did not complete cleanly.

state: failedcreated: 2026-03-29 15:20 UTCvalidation: failed

Why it stopped

patch proposal did not complete cleanly

Collected context

  • This older failed attempt predates structured patch failure capture, so Fixer only retained the diagnosis and workspace context.
  • Subsystem: runaway-process
  • Diagnosis family: unknown-userspace-loop
  • Hot path: lock_next_vma
  • Command: htop
  • Source package: htop
  • Workspace source: debian-source
  • Workspace acquisition: Fetched Debian source package via apt-get source.
  • Homepage: https://htop.dev/
  • Implicated packages: linux-image-6.19.8+deb14-amd64

The process is demonstrably CPU-hot, but the current syscall and symbol sample does not point to a single dominant loop family yet.

failed patch attempt

patch

htop likely remains stuck in an unclassified userspace loop. The diagnosis was captured, but the patch proposal did not complete cleanly.

state: failedcreated: 2026-03-29 15:18 UTCvalidation: failed

Why it stopped

patch proposal did not complete cleanly

Collected context

  • This older failed attempt predates structured patch failure capture, so Fixer only retained the diagnosis and workspace context.
  • Subsystem: runaway-process
  • Diagnosis family: unknown-userspace-loop
  • Hot path: lock_next_vma
  • Command: htop
  • Source package: htop
  • Workspace source: debian-source
  • Workspace acquisition: Fetched Debian source package via apt-get source.
  • Homepage: https://htop.dev/
  • Implicated packages: linux-image-6.19.8+deb14-amd64

The process is demonstrably CPU-hot, but the current syscall and symbol sample does not point to a single dominant loop family yet.

failed patch attempt

patch

htop likely remains stuck in an unclassified userspace loop. The diagnosis was captured, but the patch proposal did not complete cleanly.

state: failedcreated: 2026-03-29 15:14 UTCvalidation: failed

Why it stopped

patch proposal did not complete cleanly

Collected context

  • This older failed attempt predates structured patch failure capture, so Fixer only retained the diagnosis and workspace context.
  • Subsystem: runaway-process
  • Diagnosis family: unknown-userspace-loop
  • Hot path: lock_next_vma
  • Command: htop
  • Source package: htop
  • Workspace source: debian-source
  • Workspace acquisition: Fetched Debian source package via apt-get source.
  • Homepage: https://htop.dev/
  • Implicated packages: linux-image-6.19.8+deb14-amd64

The process is demonstrably CPU-hot, but the current syscall and symbol sample does not point to a single dominant loop family yet.

failed patch attempt

patch

htop likely remains stuck in an unclassified userspace loop. The diagnosis was captured, but the patch proposal did not complete cleanly.

state: failedcreated: 2026-03-29 14:57 UTCvalidation: failed

Why it stopped

patch proposal did not complete cleanly

Collected context

  • This older failed attempt predates structured patch failure capture, so Fixer only retained the diagnosis and workspace context.
  • Subsystem: runaway-process
  • Diagnosis family: unknown-userspace-loop
  • Hot path: lock_next_vma
  • Command: htop
  • Source package: htop
  • Workspace source: debian-source
  • Workspace acquisition: Fetched Debian source package via apt-get source.
  • Homepage: https://htop.dev/
  • Implicated packages: linux-image-6.19.8+deb14-amd64

The process is demonstrably CPU-hot, but the current syscall and symbol sample does not point to a single dominant loop family yet.