# NousResearch/hermes-agent · Gateway zombie PIDs incorrectly treated as live lock holders

## Open now

- Nothing open on GitHub.

Multiple issues and fix attempts address a bug where gateway scoped locks held by zombie processes (state Z) are not detected as stale, causing deadlocks and blocking reconnects. The cluster represents iterative efforts to make zombie PID detection correctly release stale locks.

## TL;DR

- 9 member(s): 0 open issue(s), 3 closed issue(s), 0 open PR(s), 0 merged PR(s), 6 PR(s) closed without merging.
- No fix has been merged to main; one or more PRs were attempted (see below).
- **Recommended:** review the prior/competing PR(s) below. A fix was attempted but not merged; your case may extend or revive that work.

## Maintainer resolution verdict

- Internal-tracker verdict over this cluster's issue members: `unresolved`. This is distinct from the fix status above. Weigh it yourself.

## How this cluster was grouped

- Link evidence (`STRUCTURAL_PARTIAL`): 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.22`: the share of member 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.

## Closed / duplicate issues

- #18822: Gateway scoped locks treat zombie owner PIDs as live, blocking Telegram/Slack reconnect
- #26651: Gateway restart deadlocks on zombie-held scoped lock
- #32661: acquire_scoped_lock: zombie processes (state Z) not detected as stale, causing false lock conflicts

## Prior & competing PRs

- **#18832: fix(gateway): treat zombie PIDs as stale in scoped locks**. closed without merge · fix tier `suggested`
  - maintainer direction: category `superseded_by_pr`; implication `superseded`; refs `#22427`
  - _suggested-tier fix detail withheld; re-request with `?tier=all` to include it._
- **#26652: fix(gateway): treat zombie processes as stale in scoped lock detection**. closed without merge · fix tier `suggested`
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `acca526286db53b03c3a8d820171faebd6c8b987`
  - _suggested-tier fix detail withheld; re-request with `?tier=all` to include it._
- **#32673: fix(gateway): treat zombie processes as stale in acquire_scoped_lock**. closed without merge · fix tier `suggested`
  - maintainer direction: category `superseded_by_pr`; implication `superseded`; refs `#26652`
  - _suggested-tier fix detail withheld; re-request with `?tier=all` to include it._
- **#19474: fix(gateway): replace zombie scoped lock owners**. closed without merge
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `acca526286db53b03c3a8d820171faebd6c8b987`, `#18832`
- **#26756: fix(gateway): treat zombie scoped lock holders as stale**. closed without merge
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `acca526286db53b03c3a8d820171faebd6c8b987`
- **#32702: fix: detect zombie processes in acquire_scoped_lock + allow macOS temp dir in path guard**. closed without merge
  - maintainer direction: category `duplicate_of`; implication `duplicate`; refs `#18822`, `#32661`, `#26652`, `#18832`, `#22427`, `#24193`, `#24598`, `#32681`

## Fix status

- No merged fix on record.
- Subsystem: `gateway`
