github gbozo/no-sdr v2.11.5-rust
v2.11.5-rust — admin reinit stall follow-up

pre-releaseone hour ago

Follow-up admin/dongle fix for the Rust backend (serverrs). Wire protocol, REST API and config format are unchanged.

Fix: rtl_tcp → local switch still returning proxy 502

2.11.4 moved the blocking USB open off the tokio workers, but start_dongle still built the rustfft plan and, more importantly, pre-allocated and zeroed the 1024-frame waterfall history (32 MB at 8192 bins) on an async worker. On a small host that is enough to stall request handling during reinit and let a reverse proxy return its HTML 502 page, even though the process stays healthy.

Changes in 2.11.5:

  • The whole DSP/history setup for a (re)started dongle now runs under tokio::task::spawn_blocking: FFT plan, deflate encoders, and the 32 MB history pre-allocation.
  • Reinit logs elapsed_ms and success/failure (dongle reinit finished).
  • The admin UI retries /api/admin/session on transient 5xx/network errors, so a proxy 502 during reinit no longer clears the login state.
  • The admin UI retries /api/admin/dongles for up to ~4.5 s after a save.

Verified with a fake rtl_tcp feed: PUT returns 200, the immediate dongle-list GETs return 200 in under 1 ms, and the local source opens in ~441 ms with the HTTP API responsive throughout.

Tests

cargo test: 115/115. Client typecheck and production build are clean.

Docker

ghcr.io/gbozo/no-sdr:2.11.5-rust — multi-arch (linux/amd64 + linux/arm64), -rust suffix only.

Don't miss a new no-sdr release

NewReleases is sending notifications on new releases.