Skip to content

deps: bump keepcurrent to pick up FromTarGz extraction fix#245

Merged
myleshorton merged 1 commit intomainfrom
fisk/bump-keepcurrent-targz-fix
Apr 22, 2026
Merged

deps: bump keepcurrent to pick up FromTarGz extraction fix#245
myleshorton merged 1 commit intomainfrom
fisk/bump-keepcurrent-targz-fix

Conversation

@myleshorton
Copy link
Copy Markdown
Contributor

Bumps `github.com/getlantern/keepcurrent` from `017d542` (2026-03-04) to `54a4d9a` (2026-04-22), pulling in getlantern/keepcurrent#7.

Why

Every bandit VPS has been silently failing to load the MaxMind GeoIP2-City database since the mholt/archiver → mholt/archives migration in keepcurrent. The downstream effect is that `tracker/metrics/tracker.go` tagged every `proxy.io` data point with `geo.country.iso_code=""` (because `*lookup.CountryCode` returns empty when the db never loads), and the dashboard's country filter matched zero across the entire fleet.

Two bugs fixed upstream:

  1. `archives.CompressedArchive` was constructed with `Archival` set instead of `Extraction`. `Extract()` checks `ca.Extraction` and returns `"no extraction format"` if nil — every `Fetch()` failed, silently swallowed by keepcurrent's retry loop (up to 30 tries, logs only after exhaustion).
  2. `info.NameInArchive` was compared against the caller's basename, but it's the full stored path — e.g. `GeoLite2-City_20260116/GeoLite2-City.mmdb` as MaxMind ships. The fix uses `path.Base()`, matching the archiver/v3 behavior this replaced.

Verified end-to-end

Before shipping upstream #7, ran a minimal Go probe against a live production bandit VPS reproducing the exact `keepcurrent.FromTarGz(FromWeb(url), "GeoLite2-City.mmdb").Fetch()` call path. Pre-fix: `err="no extraction format"`. Post-fix: extracts the 63 MB mmdb in 1.6 s.

Next

  • Merge this.
  • Rebuild the lantern-box packer image so newly-provisioned bandit VPSes pick it up.
  • Let the drain continue turning over the fleet.
  • Dashboard country filter should start showing real data within a few hours of the new image rolling out.

Test plan

  • `go mod tidy` clean
  • `go build ./...` clean
  • Verified upstream fix on a live prod VPS (details above)

Bumps keepcurrent from 017d542 (2026-03-04) to 54a4d9a (2026-04-22).

Pulls in getlantern/keepcurrent#7, which fixes two back-to-back bugs in
FromTarGz introduced by the mholt/archiver → mholt/archives migration:

  1. archives.CompressedArchive was constructed with Archival set instead
     of Extraction, so Extract() returned "no extraction format" on every
     call — silently swallowed by the keepcurrent retry loop.
  2. NameInArchive comparison was against the full stored path, but
     callers (here) pass a basename. MaxMind ships the mmdb under a dated
     directory (GeoLite2-City_YYYYMMDD/GeoLite2-City.mmdb) so the basename
     compare (path.Base) is the right behavior, matching the prior
     archiver/v3 implementation.

Downstream effect: every bandit VPS was silently failing to load the
GeoIP database, so tracker/metrics tagged every proxy.io data point with
geo.country.iso_code="" and the dashboard's country filter matched zero.
Once this lands and the packer image is rebuilt + rolled out, country
tagging should start working on fresh VPSes.
Copilot AI review requested due to automatic review settings April 22, 2026 16:14
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

Updates the github.com/getlantern/keepcurrent dependency to a newer pseudo-version in order to pick up upstream fixes to tar.gz extraction behavior (used downstream for MaxMind GeoIP DB retrieval).

Changes:

  • Bump github.com/getlantern/keepcurrent from 017d542 to 54a4d9a in go.mod
  • Update corresponding go.sum entries for the new pseudo-version

Reviewed changes

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

File Description
go.mod Updates the keepcurrent indirect requirement to the newer pseudo-version containing the extraction fixes.
go.sum Refreshes checksums to match the updated keepcurrent pseudo-version.

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

@myleshorton myleshorton merged commit 7816bb8 into main Apr 22, 2026
7 checks passed
@myleshorton myleshorton deleted the fisk/bump-keepcurrent-targz-fix branch April 22, 2026 16:18
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