firehose::watch (crates/knotless-serve/src/firehose.rs, about lines
135-151) sleeps a fixed 500 ms after every connection that ends and after
every failed connect. Unlike knotless::jetstream::follow, it never backs
off. When a relay is down or refuses connections, serve retries it twice
a second for as long as the outage lasts.
How to see it
Run knotless-serve --firehose <url> against a relay that refuses
connections, then watch the connection attempts. They come every 500 ms
and never slow down. Jetstream, given the same refusal, backs off to
60 s.
What you expected
The firehose should back off as Jetstream does: 500 ms, doubling after
each failed attempt up to 60 s, and reset once connected. One way is to
share the RETRY and RETRY_MAX loop.
Where
knotless-serve, on main at b191acef. Found by the docs audit. serve.md
now describes the current behaviour.
What happened
firehose::watch(crates/knotless-serve/src/firehose.rs, about lines 135-151) sleeps a fixed 500 ms after every connection that ends and after every failed connect. Unlikeknotless::jetstream::follow, it never backs off. When a relay is down or refuses connections, serve retries it twice a second for as long as the outage lasts.How to see it
Run
knotless-serve --firehose <url>against a relay that refuses connections, then watch the connection attempts. They come every 500 ms and never slow down. Jetstream, given the same refusal, backs off to 60 s.What you expected
The firehose should back off as Jetstream does: 500 ms, doubling after each failed attempt up to 60 s, and reset once connected. One way is to share the
RETRYandRETRY_MAXloop.Where
knotless-serve, on main at b191acef. Found by the docs audit. serve.md now describes the current behaviour.
🤖 Generated with Claude Code