Skip to content

deps: restore sing-box-minimal v1.12.21-lantern (Android bootstrap deadlock)#8678

Merged
myleshorton merged 1 commit intomainfrom
bump/sing-box-minimal-v1.12.21
Apr 17, 2026
Merged

deps: restore sing-box-minimal v1.12.21-lantern (Android bootstrap deadlock)#8678
myleshorton merged 1 commit intomainfrom
bump/sing-box-minimal-v1.12.21

Conversation

@myleshorton
Copy link
Copy Markdown
Contributor

Summary

Bumps sing-box-minimal back to v1.12.21-lantern. This was the version on main until #8655 "Save last server location" accidentally downgraded it to v1.12.19-lantern during review churn.

v1.12.21-lantern contains 9c79c311 ("fix: make initial remote rule-set fetch non-fatal"), which turns the Android bootstrap deadlock (`"no available network interface"` during initial rule-set fetch) from a fatal libbox startup error into a WARN + retry-after-start. Without it, nightly builds from main fail to connect on any smart-routing country.

Diagnosis

Same user (Alexander, Bulgaria), same device (28daebb937d60563), same 9.0.25 version, different builds:

Ticket Build sing-box-minimal rule_set_remote.go line Outcome
#172722 Nightly (from main, post-#8655) v1.12.19-lantern 235 (fetch() error path) ERROR Failed to start libbox service — tunnel never starts
#172795 Beta v9.0.25-beta-android (cut before #8655) v1.12.21-lantern 113 (StartContext warn) WARN initial rule-set fetch failed, will retry after start — tunnel starts cleanly

Same smart-routing-bg-common-direct fetch failure in both logs; only the sing-box-minimal version differs.

Follow-ups

go mod tidy cleanup

Tidy also dropped stale go.sum entries for superseded radiance and lantern-box pseudo-versions and removed the unused getsentry/sentry-go indirect (left behind after #8665 "remove sentry").

Test plan

  • go build ./... clean
  • go mod tidy clean
  • Next Android nightly: verify Alexander's Bulgaria build connects (same user can retest)
  • Smart-routing countries (MO, CN, RU, BG) all connect on first launch without the bootstrap deadlock loop

PR #8655 ("Save last server location") accidentally downgraded
sing-box-minimal from v1.12.21-lantern back to v1.12.19-lantern in
go.mod during review churn. v1.12.21-lantern contains commit 9c79c311
("fix: make initial remote rule-set fetch non-fatal"), which turns the
Android bootstrap deadlock ("no available network interface" during
initial rule-set fetch) from a fatal libbox startup error into a
WARN + retry-after-start. Without it, nightly builds from main fail
to connect on any smart-routing country (Macao, Bulgaria, etc.).

Confirmed by comparing Freshdesk #172722 (broken, rule_set_remote.go:235,
v1.12.19-lantern) with #172795 (working, rule_set_remote.go:113,
v1.12.21-lantern). Same user, same device, same 9.0.25 version, same
smart-routing-bg-common-direct fetch failure — only the sing-box-minimal
version differs. The v9.0.25-beta-android tag was cut before #8655
merged, which is why Alexander's beta works while the nightly doesn't.

`go mod tidy` also dropped stale go.sum entries for superseded radiance
and lantern-box pseudo-versions and removed the unused getsentry/sentry-go
indirect (left behind after #8665).
Copilot AI review requested due to automatic review settings April 17, 2026 15:59
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Restores the sing-box-minimal replacement version to v1.12.21-lantern to address the Android bootstrap deadlock during the initial remote rule-set fetch, and cleans up module metadata from go mod tidy.

Changes:

  • Update go.mod replace directive to use github.com/getlantern/sing-box-minimal v1.12.21-lantern.
  • Update go.sum accordingly and drop stale sums for no-longer-referenced module versions (including removed sentry-go indirect entries).

Reviewed changes

Copilot reviewed 1 out of 2 changed files in this pull request and generated no comments.

File Description
go.mod Restores the sing-box replacement target to sing-box-minimal v1.12.21-lantern and removes an unused indirect requirement.
go.sum Synchronizes sums with the restored dependency version and tidies out unused/stale entries.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@myleshorton myleshorton merged commit 0d08122 into main Apr 17, 2026
13 checks passed
@myleshorton myleshorton deleted the bump/sing-box-minimal-v1.12.21 branch April 17, 2026 16:01
myleshorton added a commit that referenced this pull request Apr 17, 2026
Companion to #8678. The refactor branch still pins v1.12.19-lantern,
which is missing the non-fatal-rule-set-fetch fix (sing-box-minimal
9c79c311, shipped in v1.12.21-lantern). Without it, Android builds
from this branch hit the same bootstrap deadlock.
myleshorton added a commit that referenced this pull request Apr 17, 2026
Companion to #8678. The refactor branch still pins v1.12.19-lantern,
which is missing the non-fatal-rule-set-fetch fix (sing-box-minimal
9c79c311, shipped in v1.12.21-lantern). Without it, Android builds
from this branch hit the same bootstrap deadlock.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants