Repository navigation
Bump kindling: race only mapped domainfront providers, record caller cancels - #710
Merged
Merged
Conversation
Picks up getlantern/kindling#64, which bumps domainfront to getlantern/domainfront#22: the domainfront transport races one lane per provider whose mapping covers the host, so a front from a provider that can't serve the host no longer wins kindling's connect race and fails a single-shot POST. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QQFpfCXs3JqrfyDuiGabF5
Contributor
Contributor
There was a problem hiding this comment.
🔵 Needs a closer look
The upstream changes alter concurrent connection racing and fallback validation on a critical networking path, warranting final human review.
No open issues 🎉
What changed in this PR
Updates kindling and domainfront to address signaling failures caused by domain-fronting providers that lack a mapping for the requested host. Radiance’s call sites remain unchanged.
Changes:
- Bumps kindling to
9d2c47719291and domainfront to9727b2f2a34a. - Incorporates host-specific provider racing, immediate failure for unmapped hosts, and POST validation of fallback fronts.
- Updates the corresponding dependency checksums.
| File | Description |
|---|---|
| go.sum | Updates checksums for the new dependency revisions. |
| go.mod | Pins kindling and domainfront to the intended upstream fixes. |
Review effort: Balanced
Picks up getlantern/kindling#63: a request radiance cancels itself before any transport answers is recorded as the canceled outcome instead of unfinished or request_failed, so it no longer shows as a failure. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QQFpfCXs3JqrfyDuiGabF5
myleshorton
added a commit
to getlantern/lantern
that referenced
this pull request
Oct 26, 2026
…utcomes (#9222) Picks up getlantern/radiance#710, which bumps kindling to include: - getlantern/kindling#64 (domainfront#22): the domainfront transport races only providers whose mapping covers the host, so a front from a provider that can't serve the host no longer wins the race and fails a single-shot POST. - getlantern/kindling#63: requests the caller ends are recorded as the canceled outcome instead of as failures. Also picks up getlantern/radiance#708 (pinned pinger probes run through the Radiance tester). Claude-Session: https://claude.ai/code/session_01QQFpfCXs3JqrfyDuiGabF5 Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Bumps
github.com/getlantern/kindlingto dac6d56, which picks up two changes:github.com/getlantern/domainfrontto 9727b2f (Race the providers that map the requested host domainfront#22): domainfront races only providers that map the host.canceled.Domainfront races only providers that map the host
Why: in Iran, 98
POST /v1/signalrequests failed withno domain fronting mapping for 'freddie.iantem.io' on provider aliyun. domainfront gave kindling's race whichever front was ready, from any provider. An aliyun front won the connect race, and because kindling sends a POST only once, the race returned the mapping error without trying smart or Soar.With this bump, the domainfront transport:
radiance's call sites are unchanged.
Caller-canceled requests are recorded as
canceledWhy: about 80% of the requests kindling reported with no winner in Iran weren't failures. They were
POST /api/v1/user-messagesrequests that radiance's user-messages service canceled itself on each refresh trigger, a few milliseconds in. kindling now records an attempt the caller cut off ascanceled, and setsRace.Canceledon that race.recordRaceexports each attempt's outcome as a string, sokindling.<transport>.outcomereportscanceledwith no radiance change. ExportingRace.Canceledon the span needs a semconv key, which can follow.Verification
go mod tidywas run. Only the kindling and domainfront lines ingo.modandgo.sumchanged.go test -tags with_clash_api ./...(CI's command) passes on macOS for every package exceptcmd/lantern.cmd/lanternfails the same way onmain: on darwin without thestandalonetag,ipcbuilds its mobile client. CI builds on Linux, where it passes.Pre-PR review (local Codex gate)
CODEX GATE: verdict=approve critical=0 important=0 minor=0 reviewed=37approve🤖 Generated with Claude Code
https://claude.ai/code/session_01QQFpfCXs3JqrfyDuiGabF5