Repository navigation
Soar v0.2.3
Fixes
- A dial no longer fails on a session left behind by an abandoned handshake.
- The bug: when a dial's context ended mid-handshake, typically because another transport won a race, the handshake still completed. That left a session that never carried a stream. The server ends such a session 15 s after its hello, but the client kept it for
SessionIdle(90 s), so the next dial in that window failed withsoar: server lost the session. - Impact: with kindling's 8 s start delay this was the common case. Soar joins the race, domain fronting wins half a second later, and the next Soar attempt fails at once.
- The fix: a session that has never carried a stream is retired 10 s after its first hello, timed from the hello rather than its reply, since retried hellos get the same session back. A session that came up less than a second ago is kept, because a dial waiting on it is about to use it. (#14)
- The bug: when a dial's context ended mid-handshake, typically because another transport won a race, the handshake still completed. That left a session that never carried a stream. The server ends such a session 15 s after its hello, but the client kept it for
SPEC.md§7.4 notes the behavior.
Compatibility
There are no API changes, and the wire protocol is unchanged: v0.2.3 interoperates with v0.2.x, v0.1.0 and soar-rs clients and servers.
Full changelog: v0.2.2...v0.2.3