Persistent EXC_GUARD (mach port guard flavor 0x200) — ~2.3k/day, ~4/min sustained idle (Desktop 0.5.19, macOS 26.5.1)
- Dominant language
- Rust
- Stars
- 32.7k
- Forks
- 4.3k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 253
Description
### Summary
Sustained `EXC_GUARD` kernel exceptions from `buzz-desktop` — ~2.3k / 24h (~4/min) steady while idle. No crash, but kernel reports guarded-resource violations (`AST: type=0x1 flavor=0x200`).
### Environment
- **App:** Buzz Desktop `0.5.19` (`/Applications/Buzz.app`, `CFBundleShortVersionString 0.5.19`, running `12:08:39` at time of report)
- **OS:** macOS `26.5.1` (Build `25F80`), darwin-xnu guard types per `osfmk/kern/exc_guard.h`
- **Process:** `buzz-desktop` pid `15289` + `18x buzz-acp` helpers observed (`ps aux | grep buzz-acp`)
### What happened
Kernel unified log (`log show --last 24h --predicate 'eventMessage CONTAINS "EXC_GUARD" AND eventMessage CONTAINS "buzz"' --style json`) shows continuous exceptions:
```
ERROR: [buzz-desktop:15289] EXC_GUARD AST: type=0x1 flavor=0x200 target=0x3029f code=0x200002000003029f subcode=0x0
ERROR: [buzz-desktop:15289] EXC_GUARD AST: type=0x1 flavor=0x200 target=0x240c3 code=0x20000200000240c3 subcode=0x0
...
```
- **Count 24h:** `2315` events for `buzz-desktop:15289` (kernel source `/kernel`)
- **Rate:** remarkably steady, not bursty:
```
2026-08-26 14 192
2026-08-26 15 234
2026-08-26 16 234
2026-08-26 17 234
2026-08-26 18 240
2026-08-26 19 234
2026-08-26 20 234
2026-08-26 21 232
2026-08-26 22 234
2026-08-26 23 234
2026-08-27 00 13 (partial hour)
```
~232–240/hour ≈ 4/min sustained for 10+ hours while app was idle (no transcription in progress).
- **Distinct targets:** many `target` values (e.g., `0x3029f`, `0x240c3`, `0x302ab`, `0x2ad33`, etc.) — not a single stuck fd, suggests repeated guard-violating path.
- **Type decode:** `GUARD_TYPE_MACH_PORT (0x1)` per `exc_guard.h`; `flavor 0x200` indicates close/invalidation of a guarded Mach port (vs `GUARD_TYPE_FD (0x2)` for fd). Either way, violates a `guard` installed via `guarded`/`close_guarded` expectations.
### Steps to reproduce
1. Launch Buzz Desktop 0.5.19 on macOS 26.5, leave running idle.
2. Monitor: `/usr/bin/log show --last 1h --predicate 'eventMessage CONTAINS "EXC_GUARD"' --style json | grep buzz`
3. Observe ~4 new events/min indefinitely.
### Expected behavior
No `EXC_GUARD` — guarded Mach ports / fds should be closed via the guarded path or unguarded before close.
### Why report
`EXC_GUARD` is a real bug signal (kernel delivers `EXC_GUARD` exception, caught by `AST`), not log noise. Current rate is low enough not to crash, but at scale it indicates a code path closing a guarded resource incorrectly. Under heavier load / different timing it could escalate to termination. Pattern (steady 4/min for hours) suggests a periodic timer / poll in `buzz-acp` or `buzz-desktop` that hits this path each cycle.
### Additional context
- No crash report generated (`~/Library/Logs/DiagnosticReports` check 1h = 0).
- Only `buzz-desktop` pid emits this; `buzz-acp` PIDs not directly in message but 18 helpers running suggests relay/harness involvement (Block buzz `buzz-acp` harness per docs).
- Happy to provide `sample` or `log show` JSON excerpt if helpful.
Let me know if you want a trace on specific `target` ports or a `spindump`.
Contributor guide
Assessment
This issue has not been assessed yet.