You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Before #3, `manager.Exec` could park indefinitely on SSH disconnect when the in-container process was silent, meaning:
`defer s.manager.SessionDisconnect(...)` at `gateway/server.go:329` never ran.
`metrics.ActiveSessionsTotal` / `metrics.BoxActiveSessions` never decremented.
Idle timer never armed; container stayed up forever.
After #3, the cancel path forces `Exec` to return on ctx cancel, so in theory all these should now decrement correctly. This issue is to verify that claim empirically and close any remaining gaps.
Scrape `/metrics` before and after a disconnect-heavy workload: connect, disconnect, reconnect, repeat many times, across TTY and non-TTY sessions (scp, one-shot ssh commands, zellij attach, etc.).
Verify gauges return to zero when all sessions close.
Verify idle timer fires for real on last-disconnect.
If drift remains, identify the leak path (e.g. forced SIGKILL of hopboxd still leaves metric counters unnerfed, but that's expected; what about graceful paths?).
Out of scope
Rewriting metric plumbing.
Adding new metrics — only audit and fix drift in existing ones.
Effort
Medium. Mostly runtime verification; small code fixes if any leak is found.
Problem
Before #3, `manager.Exec` could park indefinitely on SSH disconnect when the in-container process was silent, meaning:
After #3, the cancel path forces `Exec` to return on ctx cancel, so in theory all these should now decrement correctly. This issue is to verify that claim empirically and close any remaining gaps.
Scope
Out of scope
Effort
Medium. Mostly runtime verification; small code fixes if any leak is found.