fix: stage Envoy downloads and only move verified installs into place - #521
Open
CodePrometheus wants to merge 1 commit into
Open
fix: stage Envoy downloads and only move verified installs into place#521CodePrometheus wants to merge 1 commit into
CodePrometheus wants to merge 1 commit into
Conversation
Signed-off-by: Zixin Zhou <zhouzixin@apache.org>
CodePrometheus
force-pushed
the
fix/atomic-envoy-install
branch
from
August 2, 2026 09:04
5d66465 to
f7bf7f4
Compare
Contributor
Author
|
Gentle ping~ @codefromthecrypt mind taking a look when you have time? |
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.
If a download is interrupted — a dropped connection, Ctrl-C, a full disk — func-e leaves a partial Envoy binary at the install path, because the tarball is unarchived directly there and the SHA-256 sum is only checked afterwards.
Every later run stats that path, reports " is already downloaded", and hands the truncated binary to the caller, which fails at exec time with no indication that the install is the problem. There is no way to recover short of manually deleting the version directory, since func-e never re-downloads a version it believes it has.
Downloads now unarchive into a staging directory next to the install path and are moved into place only after the checksum matches, so the install path either holds a complete install or nothing at all. A failed download is cleaned up and the next run downloads again.