-
Notifications
You must be signed in to change notification settings - Fork 892
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Checksum failed (again) #346
Comments
Thanks for the report. I'd imagine this has resolved itself by now? It's probably not the same issue we saw over the weekend. We have constant problems with our CDN invalidating our binary artifacts at different times, causing the .sha256 files to disagree with the files they correspond to. I believe what you are seeing is the effects of this bug. It's super frustrating, but I've just taken another look at our CDN invalidation script and it looks right. Even though I think this is an upstream problem, I'm going to leave this open for others to find. |
After thinking about this further there is only one scenario where we should possibly be seeing these hash mismatches, and that's when comparing the manifest with its hash. Other hashes are all contained in the manifest themselves and refer to files with unique names that don't require CDN invalidation. It may be possible to tweak the manifest format further to avoid this problem. For example, the manifest itself could be a toml file prepended with a 60 byte sha. Could also just not validate the manifest and leave errors to happen during parsing and downloading of bins. |
Yes, it resolved something like 20 minutes after I filed it. |
I'm considering just not checking either the hash of the manifest or the hash of the self update, the two problematic hashes. I don't know anything that validating these two hashes accomplishes. As a checksum it's redundant since the HTTPS transfer will guarantee the bits get to us correctly. |
Heh. The hashes here let you check whether updates exist before downloading, an important function. I'm working on other workarounds. |
We've got problems with the updater and its hash being out of sync. Thes patch considers a hash failure here a temporary problem, prints a status message and exits with success. cc rust-lang#346
We've got problems with the updater and its hash being out of sync. Thes patch considers a hash failure here a temporary problem, prints a status message and exits with success. cc rust-lang#346
@brson what about using HTTP ETags for this? They were designed for precisely this purpose. |
@est31 From a quick googling I don't know that I can use etags to fix the syncing from S3 to CloudFront. Do you know how to do it? |
Yes, it's possible we could use etags instead of the sha for checking for updates. |
Happening to me with the nightly toolchain |
With some changes to the data layout we should be able to get rid of the drift. The idea is that each releases binaries are uploaded to a unique directory (the Rust and rustup archives already partially accomplish this), and there is a single Concretely, we have to change the scheme used in two places - the rustup bins and the rust manifests. For rustup we'll need to add a For rust, we'll need to add a To make this work on CloudFront we'll need to set up multiple origins. Some IRC conversation:
cc @eternaleye |
Happening to me now with 1.22. Worse: when it fails rustup insists that it installed something, but none of the right directories exist:
|
I'm getting this today too |
@slondr if this persists, please let us know, but this might be drift on the CDNs |
Closing this now as this is not really a Rustup issue, but an issue with the release server. If you are encountering another wave of failures with the official release server, please report under https://rust-lang.zulipchat.com/#narrow/stream/t-infra as suggested in #3390 (comment). |
I don't know if this is related to previous bugs with the same name, so filing a new one.
The text was updated successfully, but these errors were encountered: