Skip to content

v1.10.4: Streaming tarball retries + 32-bit Linux build fix

Choose a tag to compare

@mise-en-dev mise-en-dev released this 11 May 05:15
· 262 commits to main since this release
Immutable release. Only release title and notes can be modified.
10f3162

Two targeted fixes: cold installs now retry transient registry failures on the streaming tarball path, and aube-store builds cleanly on 32-bit Linux again.

Fixed

  • Streaming tarball fetch retries transient failures (#591 by @jdx) — start_tarball_stream (the default install hot path for sha512-pinned lockfile entries) used to skip retry entirely to avoid unwinding partial CAS writes mid-stream. That reasoning is sound for mid-stream errors, but it also leaked into pre-response failures: a 503, 429, connection refused, or connection reset before any chunk had flowed would propagate straight back to the caller with no recovery, while the buffered path retried the same failures up to fetchRetries times. The initial send().await now retries on is_retriable_status (5xx + 429, honoring Retry-After) and on transport errors (bounded by TIMEOUT_RETRY_CAP), emitting the existing WARN_AUBE_HTTP_RETRY_TRANSIENT / _TRANSPORT logs. Once headers pass error_for_status and chunks start flowing, behavior is unchanged. Caught on a macOS PGO dry-run where Verdaccio / the throttle-proxy hiccupped and the install bailed without a single retry log line.
  • aube-store builds on 32-bit Linux (#587 by @jdx) — The posix_fallocate wrapper hard-coded len: i64, which matches libc::off_t on every 64-bit target but breaks armhf, where the default (non-LFS) off_t = i32. The wrapper now takes libc::off_t directly and the single call site casts bytes.len() as libc::off_t, unblocking Launchpad's Ubuntu Resolute armhf build of aube and any downstream armv7-unknown-linux-gnueabihf consumer.

💚 Sponsor aube

aube is part of en.dev — an independent developer-tooling studio run by @jdx, also behind mise. Work on aube is funded entirely by sponsors.

If aube is saving your team install time or CI minutes, please consider sponsoring at en.dev. Individual and company sponsorships are what keep the project fast, free, and independent.