Skip to content

Fix: service stop hangs ~30 s while a dashboard is open - #131

Merged
vibesoftwarecoder merged 1 commit into
masterfrom
fix/ws-shutdown-hang
Oct 22, 2026
Merged

vibesoftwarecoder merged 1 commit into
masterfrom
fix/ws-shutdown-hang

Conversation

@vibesoftwarecoder

Copy link
Copy Markdown
Owner

Fix: service stop hangs ~30 s while a dashboard is open

On 2026-10-21 the service took about 31 s to stop during the 0.6.23 install. The Event Log showed a 28 s silent gap after "Input router stopped".

The /ws/seats read loop ignored shutdown, so Kestrel waited out its full grace period for any open dashboard socket. The loop now stops when the host stops and closes the socket.

  • A new test, WebSocketShutdownTests, opens a dashboard socket and times StopAsync. It fails at 30.0 s on the old code and passes in about 0.1 s with the fix.
  • Full suite: 1703 passed, 18 skipped, 0 failed.
  • A normal client close now uses a 2 s timeout instead of none.
  • Docs and the installer message now say that SteamLauncher -shutdown exits 0 once it hands the request to Steam, and that Steam will not exit while a game is running in that seat.

🤖 Generated with Claude Code

The /ws/seats read loop ignored shutdown, so Kestrel waited out its full
grace period (~30 s) for any open dashboard socket before the service
could stop. The loop now ends when the host starts stopping and closes
the socket. A new test fails at 30.0 s on the old code and passes in
about 0.1 s now.

Also document that SteamLauncher -shutdown exits 0 once it hands the
request to Steam, and that Steam will not exit while a game is running
in that seat.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@vibesoftwarecoder
vibesoftwarecoder merged commit 3edcea0 into master Oct 22, 2026
3 checks passed
@vibesoftwarecoder
vibesoftwarecoder deleted the fix/ws-shutdown-hang branch October 22, 2026 15:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant