From c1ee4a7c87b3629d890592e017127c2a363cc045 Mon Sep 17 00:00:00 2001 From: LYJW131 <153256373+LYJW131@users.noreply.github.com> Date: Tue, 3 Nov 2026 15:03:32 +0800 Subject: [PATCH 1/2] fix(manager): the QEMU guest boots with network and its fw_cfg arguments The guest's e1000.ko and qemu_fw_cfg.ko were committed copies built for 6.8.0-1064-azure, while the workflow takes the newest build-lite kernel, now 6.8.0-1070-azure. Both modules fail to load ("disagrees about version of symbol"), so the guest has no eth0 and never reads manager_args: the manager runs without the pinned payload, fails to download the newest one, panics as PID 1, and the kernel panic keeps QEMU running until the host gives up. - build.sh takes the kernel and both modules from the same qemu-assets artifact (KERNEL_ASSETS) and fails when a module's vermagic differs from the kernel's version; the stale guest/modules copies are gone. - init no longer execs the manager: when it exits the guest powers off, so QEMU exits instead of hanging on "Attempted to kill init". Failed insmods are logged, and the kernel cmdline fallback for the manager arguments now runs when fw_cfg gave none (its old test never held). - PrepareWrapper retries a failed payload download with backoff (5 s doubling to 1 min) instead of panicking. Co-Authored-By: Claude Opus 5.5 Signed-off-by: LYJW131 <153256373+LYJW131@users.noreply.github.com> --- .github/workflows/manager.yml | 20 ++++++----- manager/guest/README.md | 35 +++++++++--------- manager/guest/build.sh | 32 ++++++++++++----- manager/guest/init | 14 +++++--- manager/guest/modules/e1000.ko | Bin 370857 -> 0 bytes manager/guest/modules/qemu_fw_cfg.ko | Bin 38097 -> 0 bytes manager/payload_source_test.go | 51 ++++++++++++++++++++++----- manager/wrapper.go | 39 ++++++++++++++++---- 8 files changed, 137 insertions(+), 54 deletions(-) delete mode 100644 manager/guest/modules/e1000.ko delete mode 100644 manager/guest/modules/qemu_fw_cfg.ko diff --git a/.github/workflows/manager.yml b/.github/workflows/manager.yml index 6f16fc3..62702e3 100644 --- a/.github/workflows/manager.yml +++ b/.github/workflows/manager.yml @@ -50,21 +50,23 @@ jobs: sudo apt-get update sudo apt-get install -y busybox-static cpio gzip e2fsprogs + - name: Fetch the build-lite kernel and its modules + run: | + # The kernel (vmlinuz-lite-qemu) is produced by the build-lite + # workflow. The e1000 and qemu_fw_cfg modules come from the same + # artifact's initramfs, so they are built for that kernel. + curl -fsSL -o qemu-assets.zip \ + "https://nightly.link/AMDL-Web/wrapper/workflows/build-lite/lite/qemu-assets.zip" + unzip -o -q qemu-assets.zip vmlinuz-lite-qemu lite-initramfs.cpio.gz -d kernel-assets/ + - name: Build guest assets + env: + KERNEL_ASSETS: kernel-assets run: | chmod +x guest/build.sh guest/init ./guest/build.sh dist-guest CREATE_DATA_IMG=1 ./guest/build.sh dist-guest - - name: Fetch upstream kernel - run: | - # The kernel (vmlinuz-lite-qemu) is produced by the upstream wrapper - # build-lite workflow; fetch it via nightly.link so the guest image - # package is complete. - curl -sL -o qemu-assets.zip \ - "https://nightly.link/AMDL-Web/wrapper/workflows/build-lite/lite/qemu-assets.zip" - unzip -o -q qemu-assets.zip vmlinuz-lite-qemu -d dist-guest/ - - name: Upload guest assets uses: actions/upload-artifact@v4 with: diff --git a/manager/guest/README.md b/manager/guest/README.md index 1fcff95..af57c39 100644 --- a/manager/guest/README.md +++ b/manager/guest/README.md @@ -8,10 +8,7 @@ runs on Windows / macOS / any Linux host (see the parent README). ```text guest/ ├── build.sh # builds wrapper-manager-initramfs.cpio.gz (+ optional data.img) -├── init # guest init script (busybox sh) -└── modules/ # kernel modules reused from the upstream wrapper initramfs - ├── e1000.ko - └── qemu_fw_cfg.ko +└── init # guest init script (busybox sh) ``` `overlay/` is a build output (gitignored): build.sh rebuilds it from scratch @@ -22,9 +19,12 @@ certificates and the kernel modules. ## Build ```shell -# requires: go, cpio, gzip, e2fsprogs, glibc + ca-certificates (any Debian/Ubuntu) -./guest/build.sh out # initramfs only -CREATE_DATA_IMG=1 ./guest/build.sh out # also create a fresh 512MB data.img +# requires: go, cpio, gzip, e2fsprogs, file, kmod, glibc + ca-certificates (any Debian/Ubuntu) +curl -fsSL -o qemu-assets.zip \ + "https://nightly.link/AMDL-Web/wrapper/workflows/build-lite/lite/qemu-assets.zip" +unzip -o qemu-assets.zip vmlinuz-lite-qemu lite-initramfs.cpio.gz -d kernel-assets/ +KERNEL_ASSETS=kernel-assets ./guest/build.sh out # kernel + initramfs +KERNEL_ASSETS=kernel-assets CREATE_DATA_IMG=1 ./guest/build.sh out # also a fresh 512MB data.img ``` ## Kernel @@ -32,16 +32,12 @@ CREATE_DATA_IMG=1 ./guest/build.sh out # also create a fresh 512MB data.img `vmlinuz-lite-qemu` is **not** built here. It is the kernel produced by the [AMDL-Web/wrapper](https://github.com/AMDL-Web/wrapper) (a fork of [WorldObservationLog/wrapper](https://github.com/WorldObservationLog/wrapper)) -`build-lite` workflow and is distributed in its `qemu-assets` artifact: - -```shell -curl -sL -o qemu-assets.zip \ - "https://nightly.link/AMDL-Web/wrapper/workflows/build-lite/lite/qemu-assets.zip" -unzip -o qemu-assets.zip vmlinuz-lite-qemu -d out/ -``` - -Copy it next to the initramfs (the launcher's `--assets-dir`, default -`/guest`). +`build-lite` workflow and is distributed in its `qemu-assets` artifact. +build.sh copies it next to the initramfs, and takes `e1000.ko` and +`qemu_fw_cfg.ko` from the same artifact's `lite-initramfs.cpio.gz`: modules +built for another kernel do not load, which leaves the guest without network +and without its fw_cfg arguments. build.sh fails when their vermagic differs +from the kernel's version. ## What the guest does on boot (init) @@ -49,7 +45,10 @@ Copy it next to the initramfs (the launcher's `--assets-dir`, default (10.0.2.15, DNS 10.0.2.3) and writes `/etc/resolv.conf`. 2. Mounts the ext4 data disk (`/dev/vda` → `/data`); formats it with `mke2fs` on first boot when it is a raw empty image. -3. Executes `/wrapper-manager -host 0.0.0.0 -port 8080` from `/data`, so all +3. Runs `/wrapper-manager -host 0.0.0.0 -port 8080` from `/data`, so all manager state (wrapper-lite payload, accounts, tokens) persists in `data.img`. Optional manager args can be supplied via qemu fw_cfg (`manager_args`) or the kernel cmdline (`manager_args_b64=`). +4. Powers the guest off when the manager exits, so QEMU exits with it rather + than hanging on a kernel panic. The manager itself retries a failed + wrapper-lite download with backoff instead of exiting. diff --git a/manager/guest/build.sh b/manager/guest/build.sh index 22b36d0..0d05b6b 100755 --- a/manager/guest/build.sh +++ b/manager/guest/build.sh @@ -10,12 +10,15 @@ # - cpio, gzip, e2fsprogs (mke2fs) # # The kernel (vmlinuz-lite-qemu) is NOT built here - it is reused from the -# upstream wrapper qemu-assets artifact (see guest/README.md). -# -# Kernel modules (e1000.ko / qemu_fw_cfg.ko) live in guest/modules/ and are -# copied verbatim from the upstream wrapper initramfs. +# build-lite qemu-assets artifact (see guest/README.md). KERNEL_ASSETS names +# the unzipped artifact: the kernel and the e1000 / qemu_fw_cfg modules both +# come from it, so they always match. A module built for another kernel fails +# to load, and the guest boots without network or fw_cfg arguments. set -euo pipefail +KERNEL_ASSETS="${KERNEL_ASSETS:?set KERNEL_ASSETS to the unzipped build-lite qemu-assets artifact}" +KERNEL_ASSETS="$(cd "$KERNEL_ASSETS" && pwd)" + REPO_DIR="$(cd "$(dirname "$0")/.." && pwd)" GUEST_DIR="$REPO_DIR/guest" OVERLAY="$GUEST_DIR/overlay" @@ -70,9 +73,21 @@ if [ ! -f "$OVERLAY/etc/ssl/certs/ca-certificates.crt" ]; then fi fi -# 5. Kernel modules. -echo "[build] staging kernel modules..." -cp "$GUEST_DIR"/modules/*.ko "$OVERLAY/" 2>/dev/null || true +# 5. Kernel and the modules built for it, from the same qemu-assets artifact. +echo "[build] staging the kernel and its modules..." +KERNEL_VER="$(file -bL "$KERNEL_ASSETS/vmlinuz-lite-qemu" | sed -n 's/.*version \([^ ]*\).*/\1/p')" +[ -n "$KERNEL_VER" ] || { echo "cannot read the version of $KERNEL_ASSETS/vmlinuz-lite-qemu"; exit 1; } +LITE_ROOT="$(mktemp -d)" +trap 'rm -rf "$LITE_ROOT"' EXIT +(cd "$LITE_ROOT" && gzip -dc "$KERNEL_ASSETS/lite-initramfs.cpio.gz" | cpio -id --quiet) +for mod in e1000 qemu_fw_cfg; do + [ -f "$LITE_ROOT/$mod.ko" ] || { echo "$mod.ko is missing from the qemu-assets initramfs"; exit 1; } + cp "$LITE_ROOT/$mod.ko" "$OVERLAY/$mod.ko" + magic="$(modinfo -F vermagic "$OVERLAY/$mod.ko" | cut -d' ' -f1)" + [ "$magic" = "$KERNEL_VER" ] || { echo "$mod.ko is built for $magic, the kernel is $KERNEL_VER"; exit 1; } +done +cp "$KERNEL_ASSETS/vmlinuz-lite-qemu" "$OUT_DIR/vmlinuz-lite-qemu" +echo "[build] kernel and modules: $KERNEL_VER" # 6. Init script at the initramfs root (required by the kernel). cp "$GUEST_DIR/init" "$OVERLAY/init" @@ -96,5 +111,4 @@ if [ "${CREATE_DATA_IMG:-0}" = "1" ]; then echo "[build] data.img created: $DATA_IMG" fi -echo "[build] done. Copy vmlinuz-lite-qemu next to the initramfs:" -echo " cp /vmlinuz-lite-qemu $OUT_DIR/" +echo "[build] done." diff --git a/manager/guest/init b/manager/guest/init index 3c2c69f..7903feb 100755 --- a/manager/guest/init +++ b/manager/guest/init @@ -12,7 +12,7 @@ /bin/busybox hostname wrapper-manager # --- network (QEMU user-mode NAT) --- -/bin/busybox insmod /e1000.ko 2>/dev/null || true +/bin/busybox insmod /e1000.ko || echo "[init] e1000.ko did not load: no network" /bin/busybox ip link set lo up /bin/busybox ip link set eth0 up 2>/dev/null || true @@ -45,17 +45,19 @@ fi # read it if present. The content is split on whitespace into arguments, so # no argument may contain a space. MANAGER_ARGS="-host 0.0.0.0 -port 8080" -/bin/busybox insmod /qemu_fw_cfg.ko 2>/dev/null || true +FROM_FW_CFG=0 +/bin/busybox insmod /qemu_fw_cfg.ko || echo "[init] qemu_fw_cfg.ko did not load" if [ -f /sys/firmware/qemu_fw_cfg/by_name/manager_args/raw ]; then echo "[init] reading manager args from fw_cfg" ARGS_LINE=$(/bin/busybox cat /sys/firmware/qemu_fw_cfg/by_name/manager_args/raw 2>/dev/null) if [ -n "$ARGS_LINE" ]; then MANAGER_ARGS="$ARGS_LINE" + FROM_FW_CFG=1 fi fi # Fallback: kernel cmdline base64 (works without qemu_fw_cfg driver) -if [ -z "$(echo "$MANAGER_ARGS" | /bin/busybox grep -c 'fw_cfg')" ]; then +if [ "$FROM_FW_CFG" = 0 ]; then for w in $(/bin/busybox cat /proc/cmdline); do case "$w" in manager_args_b64=*) @@ -72,5 +74,9 @@ echo "[init] eth0 carrier: $(cat /sys/class/net/eth0/carrier 2>/dev/null)" echo "[init] dns test: $(/bin/busybox nslookup nightly.link 10.0.2.3 2>&1 | head -3 | tr '\n' '|')" /bin/busybox chmod +x /wrapper-manager cd /data +# Not exec: the kernel panics when init exits, and a panicked guest keeps +# QEMU running. Powering off ends QEMU, so the host sees the manager stop. # shellcheck disable=SC2086 -exec /wrapper-manager $MANAGER_ARGS +/wrapper-manager $MANAGER_ARGS +echo "[init] wrapper-manager exited with status $?, powering off" +/bin/busybox poweroff -f diff --git a/manager/guest/modules/e1000.ko b/manager/guest/modules/e1000.ko deleted file mode 100644 index 747492532043a56b47c9cc3d7148d3cf9c1bcf02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 370857 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 BXb%7Y diff --git a/manager/payload_source_test.go b/manager/payload_source_test.go index e01d1c3..8867f60 100644 --- a/manager/payload_source_test.go +++ b/manager/payload_source_test.go @@ -11,7 +11,9 @@ import ( "path/filepath" "runtime" "strings" + "sync/atomic" "testing" + "time" ) // writePayloadZip builds a zip with the launcher and lite binary laid out like @@ -88,6 +90,13 @@ func TestPayloadFromAnotherSourceIsNotReady(t *testing.T) { // servePayload serves a payload zip and returns its URL and sha256. func servePayload(t *testing.T) (url, sum string) { + t.Helper() + return servePayloadAfter(t, 0) +} + +// servePayloadAfter serves the payload once failures requests have been +// answered 503. +func servePayloadAfter(t *testing.T, failures int32) (url, sum string) { t.Helper() zipPath := filepath.Join(t.TempDir(), "p.zip") writePayloadZip(t, zipPath) @@ -95,7 +104,14 @@ func servePayload(t *testing.T) (url, sum string) { if err != nil { t.Fatal(err) } - srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { _, _ = w.Write(body) })) + var seen atomic.Int32 + srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { + if seen.Add(1) <= failures { + w.WriteHeader(http.StatusServiceUnavailable) + return + } + _, _ = w.Write(body) + })) t.Cleanup(srv.Close) h := sha256.Sum256(body) return srv.URL + "/p.zip", hex.EncodeToString(h[:]) @@ -148,7 +164,7 @@ func TestPayloadSHA256RefusesAMismatchAndInstallsNothing(t *testing.T) { func TestPayloadSHA256MismatchDoesNotKeepAnInstalledPayload(t *testing.T) { t.Chdir(t.TempDir()) // An installed payload from another source is normally kept when the - // replacement fails; a digest mismatch must panic instead. + // replacement fails; a digest mismatch must fail instead. for _, p := range []string{launcherPath(), filepath.Join(wrapperDir, "rootfs", "system", "bin", "lite")} { if err := os.MkdirAll(filepath.Dir(p), 0o755); err != nil { t.Fatal(err) @@ -159,10 +175,29 @@ func TestPayloadSHA256MismatchDoesNotKeepAnInstalledPayload(t *testing.T) { } url, _ := servePayload(t) setPin(t, url, strings.Repeat("0", 64)) - defer func() { - if r := recover(); r == nil { - t.Fatal("PrepareWrapper kept the unverified payload") - } - }() - PrepareWrapper(false) + if err := prepareWrapper(false); !errors.Is(err, errPayloadSHA256) { + t.Fatalf("prepareWrapper kept the unverified payload: %v", err) + } + if wrapperPayloadReady() { + t.Fatal("the unverified payload reported ready") + } +} + +func TestPrepareWrapperRetriesUntilThePayloadArrives(t *testing.T) { + t.Chdir(t.TempDir()) + first, max := prepareRetryFirst, prepareRetryMax + prepareRetryFirst, prepareRetryMax = time.Millisecond, 2*time.Millisecond + t.Cleanup(func() { prepareRetryFirst, prepareRetryMax = first, max }) + url, sum := servePayloadAfter(t, 3) + setPin(t, url, sum) + done := make(chan struct{}) + go func() { PrepareWrapper(false); close(done) }() + select { + case <-done: + case <-time.After(10 * time.Second): + t.Fatal("PrepareWrapper did not install the payload once it was served") + } + if !wrapperPayloadReady() { + t.Fatal("payload not ready after PrepareWrapper returned") + } } diff --git a/manager/wrapper.go b/manager/wrapper.go index 7ed7c26..6d1e515 100644 --- a/manager/wrapper.go +++ b/manager/wrapper.go @@ -252,12 +252,38 @@ func describeInstall(res installResult) { } } -// PrepareWrapper downloads and extracts the wrapper-lite native package when -// missing or installed from another source. mirror routes the download through -// gh-proxy.com. Failing to replace an installed payload keeps it. +// prepareRetryFirst and prepareRetryMax bound the wait between attempts to +// install the payload. +var ( + prepareRetryFirst = 5 * time.Second + prepareRetryMax = time.Minute +) + +// PrepareWrapper installs the wrapper-lite payload, retrying with backoff +// until it succeeds. Nothing can be served without it, and exiting is no +// better: in the QEMU guest the manager is what init runs, so its exit stops +// the guest, and a host that sees a guest stop at once may blame its +// accelerator for a network that is merely down. func PrepareWrapper(mirror bool) { + delay := prepareRetryFirst + for { + err := prepareWrapper(mirror) + if err == nil { + return + } + log.Errorf("wrapper-lite is not ready: %v; trying again in %s", err, delay) + time.Sleep(delay) + delay = min(2*delay, prepareRetryMax) + } +} + +// prepareWrapper downloads and extracts the wrapper-lite native package when +// missing or installed from another source. mirror routes the download through +// gh-proxy.com. Failing to replace an installed payload keeps it, unless the +// download failed its pinned digest. +func prepareWrapper(mirror bool) error { if wrapperPayloadReady() { - return + return nil } installed := wrapperPayloadInstalled() if installed { @@ -271,12 +297,13 @@ func PrepareWrapper(mirror bool) { if err != nil { if installed && !errors.Is(err, errPayloadSHA256) { log.Warnf("keeping the installed wrapper-lite: %v", err) - return + return nil } - panic(err) + return err } log.Info("wrapper-lite ready") describeInstall(res) + return nil } // UpdateWrapper force-reinstalls the latest wrapper-lite payload from From a8eff9102e3f9f459685068233e1af436f8bb0f3 Mon Sep 17 00:00:00 2001 From: LYJW131 <153256373+LYJW131@users.noreply.github.com> Date: Tue, 3 Nov 2026 15:07:35 +0800 Subject: [PATCH 2/2] fix(manager): a payload that fails its pinned digest ends the manager Retrying cannot help when the pin itself does not match: PrepareWrapper returns that error and main exits non-zero, while a download that fails for any other reason is still retried with backoff. The parent README's build steps now pass KERNEL_ASSETS. Co-Authored-By: Claude Opus 5.5 Signed-off-by: LYJW131 <153256373+LYJW131@users.noreply.github.com> --- manager/README.md | 14 +++++++------- manager/guest/README.md | 3 ++- manager/main.go | 5 ++++- manager/payload_source_test.go | 22 +++++++++++++++++++++- manager/wrapper.go | 17 +++++++++-------- 5 files changed, 43 insertions(+), 18 deletions(-) diff --git a/manager/README.md b/manager/README.md index 1bb06c3..1d4bcae 100644 --- a/manager/README.md +++ b/manager/README.md @@ -276,13 +276,13 @@ The launcher is modeled after upstream # 1. the launcher (any platform) go build -o wrapper-manager-qemu ./cmd/wrapper-manager-qemu -# 2. the guest initramfs (on Linux; see guest/build.sh) -./guest/build.sh out # builds wrapper-manager-initramfs.cpio.gz -CREATE_DATA_IMG=1 ./guest/build.sh out # also create a fresh data.img - -# 3. the kernel is reused from the upstream wrapper qemu-assets artifact: -# https://nightly.link/AMDL-Web/wrapper/workflows/build-lite/lite/qemu-assets.zip -# (vmlinuz-lite-qemu). Put it next to the initramfs in the assets dir. +# 2. the guest (on Linux; see guest/README.md). The kernel and its e1000 and +# qemu_fw_cfg modules come from the build-lite qemu-assets artifact. +curl -fsSL -o qemu-assets.zip \ + "https://nightly.link/AMDL-Web/wrapper/workflows/build-lite/lite/qemu-assets.zip" +unzip -o qemu-assets.zip vmlinuz-lite-qemu lite-initramfs.cpio.gz -d kernel-assets/ +KERNEL_ASSETS=kernel-assets ./guest/build.sh out # kernel + initramfs +KERNEL_ASSETS=kernel-assets CREATE_DATA_IMG=1 ./guest/build.sh out # also a fresh data.img ``` Prebuilt artifacts (launchers for linux/windows/macos + guest image) are diff --git a/manager/guest/README.md b/manager/guest/README.md index af57c39..e5240d9 100644 --- a/manager/guest/README.md +++ b/manager/guest/README.md @@ -51,4 +51,5 @@ from the kernel's version. (`manager_args`) or the kernel cmdline (`manager_args_b64=`). 4. Powers the guest off when the manager exits, so QEMU exits with it rather than hanging on a kernel panic. The manager itself retries a failed - wrapper-lite download with backoff instead of exiting. + wrapper-lite download with backoff instead of exiting; only a download + that fails its pinned digest ends it. diff --git a/manager/main.go b/manager/main.go index 0cb7351..fa6ee57 100644 --- a/manager/main.go +++ b/manager/main.go @@ -87,7 +87,10 @@ func main() { if !wrapperPayloadInstalled() { log.Warn("wrapper-lite does not exist, downloading...") } - PrepareWrapper(*mirror) + if err := PrepareWrapper(*mirror); err != nil { + log.Errorf("wrapper-lite cannot be installed: %v", err) + os.Exit(1) + } } if *prepare { diff --git a/manager/payload_source_test.go b/manager/payload_source_test.go index 8867f60..759a141 100644 --- a/manager/payload_source_test.go +++ b/manager/payload_source_test.go @@ -183,6 +183,22 @@ func TestPayloadSHA256MismatchDoesNotKeepAnInstalledPayload(t *testing.T) { } } +func TestPrepareWrapperGivesUpOnADigestMismatch(t *testing.T) { + t.Chdir(t.TempDir()) + url, _ := servePayload(t) + setPin(t, url, strings.Repeat("0", 64)) + done := make(chan error, 1) + go func() { done <- PrepareWrapper(false) }() + select { + case err := <-done: + if !errors.Is(err, errPayloadSHA256) { + t.Fatalf("PrepareWrapper: %v", err) + } + case <-time.After(10 * time.Second): + t.Fatal("PrepareWrapper retried a pin that cannot match") + } +} + func TestPrepareWrapperRetriesUntilThePayloadArrives(t *testing.T) { t.Chdir(t.TempDir()) first, max := prepareRetryFirst, prepareRetryMax @@ -191,9 +207,13 @@ func TestPrepareWrapperRetriesUntilThePayloadArrives(t *testing.T) { url, sum := servePayloadAfter(t, 3) setPin(t, url, sum) done := make(chan struct{}) - go func() { PrepareWrapper(false); close(done) }() + var err error + go func() { err = PrepareWrapper(false); close(done) }() select { case <-done: + if err != nil { + t.Fatal(err) + } case <-time.After(10 * time.Second): t.Fatal("PrepareWrapper did not install the payload once it was served") } diff --git a/manager/wrapper.go b/manager/wrapper.go index 6d1e515..bb81dcb 100644 --- a/manager/wrapper.go +++ b/manager/wrapper.go @@ -259,17 +259,18 @@ var ( prepareRetryMax = time.Minute ) -// PrepareWrapper installs the wrapper-lite payload, retrying with backoff -// until it succeeds. Nothing can be served without it, and exiting is no -// better: in the QEMU guest the manager is what init runs, so its exit stops -// the guest, and a host that sees a guest stop at once may blame its -// accelerator for a network that is merely down. -func PrepareWrapper(mirror bool) { +// PrepareWrapper installs the wrapper-lite payload, retrying a failed +// download with backoff until it succeeds. Nothing can be served without it, +// and exiting is no better: in the QEMU guest the manager is what init runs, +// so its exit stops the guest, and a host that sees a guest stop at once may +// blame its accelerator for a network that is merely down. A download that +// fails its pinned digest is returned instead: the same pin would fail again. +func PrepareWrapper(mirror bool) error { delay := prepareRetryFirst for { err := prepareWrapper(mirror) - if err == nil { - return + if err == nil || errors.Is(err, errPayloadSHA256) { + return err } log.Errorf("wrapper-lite is not ready: %v; trying again in %s", err, delay) time.Sleep(delay)