Repository navigation
Bump soar to v0.2.4 and kindling: stop leaking Soar streams - #700
Conversation
Soar's round tripper held a confirmed stream until a request took it, and kindling dropped the round trippers that lost a race without closing them. On a client that kept losing short races, every stream leaked and Soar failed with "soar: too many streams" until restart. soar v0.2.4 (getlantern/soar#15) makes the round tripper closable and expires an unused stream after 10 s. kindling 48c13b1 (getlantern/kindling#61) closes every round tripper a race doesn't use. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QQFpfCXs3JqrfyDuiGabF5
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
There was a problem hiding this comment.
🟢 Approved
The dependency fixes fit Radiance’s existing transport integration, with no blocking issues identified.
No open issues 🎉
What changed in this PR
Updates Soar and kindling to fix unused stream leaks that could exhaust Soar sessions and prevent connections until the client restarted.
Changes:
- Bumps Soar to v0.2.4, adding cleanup for unused streams.
- Bumps kindling to
48c13b1454d3, closing connected round trippers that lose transport races. - Updates the corresponding dependency checksums; no Radiance application code changes.
| File | Description |
|---|---|
| go.sum | Updates checksums for the two dependency revisions. |
| go.mod | Pins Soar and kindling versions containing the cleanup fixes. |
Review effort: Balanced
radiance 5bff222 brings soar v0.2.4 and kindling 48c13b1 (getlantern/radiance#700). A round tripper that lost a race kept its Soar stream open, so a client that kept losing short races eventually failed every Soar attempt with "soar: too many streams" until restart. The range also brings getlantern/radiance#698 (peer helper direct mode). Claude-Session: https://claude.ai/code/session_01QQFpfCXs3JqrfyDuiGabF5 Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Summary
This bumps soar to v0.2.4 and kindling to
48c13b1. Together they fix a stream leak that permanently broke Soar on a long-running client.What happened in the field: one Windows client on 10.0.3-beta-10 failed every Soar attempt about 1,800 times over two days with
soar: too many streams.freddie.iantem.iorun every ~14 s, and Soar often loses those races after connecting, so each lost race leaked one stream.The new
vcs.ref.head.revisionattribute (#691) is what tied the spike to beta 10 and to one device.Changes
github.com/getlantern/soarv0.2.3 → v0.2.4 (roundtripper: give back the stream an unused round tripper holds soar#15): the round tripper implementsio.Closer, and a stream no request takes is released after 10 s.github.com/getlantern/kindling0f4a89d→48c13b1:Either dependency fix alone stops the leak. radiance passes
*soar.Clientstraight tokindling.WithDNSTunnel(kindling/client.go:288), so kindling gets Soar's closable round tripper unwrapped. Onlygo.modandgo.sumchange, aftergo mod tidy.Verification
go test -tags with_clash_api ./kindling/... ./telemetry/passes.go build -tags with_clash_api ./...fails only incmd/lantern(theipc.NewClientsignature), which also fails onmain.configtests,TestUserChangeSkipsConfigFetchWithoutCredentialsandTestInitialAccountEventDoesNotLoopConfigCreation, which fail the same way locally onmain.Pre-PR review (local Codex gate)
CODEX GATE: verdict=approve critical=0 important=0 minor=0 reviewed=20approve. Besides the diff, the reviewer read radiance'skindling/client.go,race.go,soar/soar.go,smart/client.goandfronted/fronted.go, both versions of soar'sroundtripper.goand kindling'srace_transport.go, and domainfront'sconnected.go.🤖 Generated with Claude Code
https://claude.ai/code/session_01QQFpfCXs3JqrfyDuiGabF5
Summary by CodeRabbit