LSP idle subprocess reaping and memory leak

NousResearch/hermes-agent · cluster 25016 · agent/lsp

Data as of

Nothing open on GitHub. Fix merged in #74058. Check it covers your case.

The short answer

0open issues
0open PRs
17items grouped
Known?
Yes. 17 related items grouped here, 4 issues already closed.
Fix event
A fix was merged to main in PR #74058. Check it covers your case. No release data is tracked.
Tracker
The maintainers' tracker marks this partially resolved, deciding PR #74058. That is separate from the fix event.
Still open
Nothing open on GitHub.

These issues and pull requests concern LSP language-server processes that are never terminated when idle, causing unbounded memory accumulation in long-running sessions. The work involves adding or enforcing an idle timeout and background reaper to shut down inactive language-server subprocesses.

Open issues0

No open issues.

Open PRs0

No open pull requests.

Fixes on record

Merged to main. A stamp counts the issues a fix is linked to.

  • #74058 fix(lsp): reap idle language servers (salvage #64141, closes #25016)

    merged to main

    files: agent/lsp/eventlog.py, agent/lsp/manager.py, contributors/emails/[redacted:email], hermes_cli/config.py, tests/agent/lsp/test_service.py, website/docs/user-guide/features/lsp.md

12 PRs closed without merging

From the close comments: done elsewhere 9 · duplicate 3

  • #25021 fix(lsp): add idle-subprocess reaper to reclaim memory during long sessions · done elsewhere
  • #25109 fix: reap idle LSP subprocesses to stop memory leak · done elsewhere → #74058, #25016
  • #36684 Fix LSP idle reaper: add background task to reap idle language-server clients · done elsewhere → #74058, #64141, #25016
  • #36892 fix(lsp): reap idle language-server clients · done elsewhere → #74058, #25016
  • #47332 feat(lsp): add idle timeout to shut down inactive LSP clients · done elsewhere → #74058, #25016
Show 7 more
  • #52751 fix(lsp): add idle client reaper to prevent memory leak · done elsewhere → #74058, #25016
  • #53430 fix(lsp): reap idle language servers (DEFAULT_IDLE_TIMEOUT was never enforced) · duplicate → #36684, #36681, #25016, #52751
  • #62995 fix(lsp): reap idle servers and terminate process groups · done elsewhere → #74058, #25016
  • #64980 fix(lsp): bound language-server lifecycle safely · done elsewhere → #25016, #74058, #64141
  • #68091 fix: reap idle LSP clients · done elsewhere → #74058, #25016
  • #73057 fix(lsp): add idle subprocess reaper (#25016) · duplicate → #36684, #25016
  • #73794 fix(lsp): add idle subprocess reaper to reclaim memory (#25016) · duplicate → #36684, #25016
Closed issues · 4
  • Closed#25016lsp: idle subprocesses are never reaped — long-lived gateways accumulate ~200 MB per server forever
  • Closed#36681LSP language-server processes accumulate indefinitely in long-running gateways (missing idle reaper)
  • Closed#38365LSP idle timeout is declared but not enforced, leaving TypeScript tsserver processes alive
  • Closed#47314[Feature]: Add idle timeout for LSP processes to reduce memory footprint
How this cluster was grouped
  • Link evidence (partly structural links): some members are connected by structural evidence (shared changed files, or a closing/superseded reference); the rest are joined by an automated relevance judgement over their text.
  • Members outside that structural core may belong to a different underlying problem.
  • Pairwise link density 0.16: the share of item pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. 1.00 means every pair is linked.

Pick up a Lab task

Check whether a fix covers the open issues here, with your own agent. Bring back evidence for maintainers.

Open the Lab

At a glance

Subsystem
agent/lsp
Merged PRs
#74058
Closed issues
4
Attempts
12 PRs closed without merging
Fix link checked
29 Jul 2026

For your agent

The same facts, typed.