• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Alan-Jowett / sonde / 23700857073
82%

Build:
DEFAULT BRANCH: main
Ran 29 Mar 2026 03:57AM UTC
Jobs 1
Files 77
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

29 Mar 2026 03:54AM UTC coverage: 85.658% (-0.03%) from 85.686%
23700857073

push

github

web-flow
fix: gateway force-exits after 5s shutdown timeout (GW-1400) (#563)

* fix: gateway force-exits after 5s shutdown timeout (GW-1400)

The gateway process could hang indefinitely after receiving a shutdown
signal when the USB-CDC serial port was in an error state (e.g. OS
error 22). The serial port \Drop\ impl or a background reader task
would block on a pending I/O operation, preventing the process from
exiting.

Changes:

- docs/gateway-requirements.md: add GW-1400 (bounded shutdown time)
  requiring the gateway to exit within 5 seconds of a shutdown signal.
- docs/gateway-design.md: document the shutdown watchdog in §16.1.
- bin/gateway.rs: after \un_gateway\ returns, spawn an OS thread
  that sleeps for 5 seconds and calls \std::process::exit(0)\. This
  covers both console mode (\main\) and Windows service mode
  (\service_entry\). If the tokio runtime teardown completes
  normally, the watchdog thread is silently reaped by the OS on
  process exit.

Fixes #551

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs: align shutdown-timeout design with std::thread implementation

Update §16.1 to describe the actual OS-thread watchdog mechanism
instead of the incorrect \	okio::time::timeout\ / \	okio::spawn\
description. Fix the doc comment on \spawn_shutdown_watchdog()\ to
match.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs: align GW-1400 design and requirements with post-un_gateway watchdog

The watchdog is spawned after un_gateway returns, covering runtime
teardown (Drop impls, pending I/O). Update both gateway-design.md and
gateway-requirements.md to reflect that the 5-second deadline starts
after the graceful shutdown completes and \\gateway stopped\\ is
logged, not from signal receipt.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

0 of 10 new or added lines in 1 file covered. (0.0%)

1 existing line in 1 file now uncovered.

23197 of 27081 relevant lines covered (85.66%)

155.94 hits per line

Uncovered Changes

Lines Coverage ∆ File
10
0.0
0.0% crates/sonde-gateway/src/bin/gateway.rs

Coverage Regressions

Lines Coverage ∆ File
1
0.0
0.0% crates/sonde-gateway/src/bin/gateway.rs
Jobs
ID Job ID Ran Files Coverage
1 23700857073.1 29 Mar 2026 03:57AM UTC 77
85.66
GitHub Action Run
Source Files on build 23700857073
  • Tree
  • List 77
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #23700857073
  • f678315c on github
  • Prev Build on main (#23693547030)
  • Next Build on main (#23701702979)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc