-
Notifications
You must be signed in to change notification settings - Fork 888
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
rustup nightly install failing #1092
Comments
Same issue on macOS 11.12 |
I can confirm on Ubuntu 17.04. |
Here is what I get after installing the current rustup from git (to get debug info and backtraces):
|
strace output:
|
Ok, the problem seems to be that the |
Can confirm on Arch Linux as well. |
@ranma42 this is likely related to rust-lang/rust#41600, notably this range of changes, mind taking a look? |
Damn you @alexcrichton! |
This causes the problem, I think rust-lang/rust-installer@4f99485...4cf7397#diff-534b12d64247754d4938410a9ba07bd3R274 find "$CFG_INPUT" \( -type d -empty \) -or \( -not -type d \) \
| rev | sort | rev | tar -cf "$CFG_OUTPUT.tar" -T -
need_ok "failed to tar" Not a find expert here, but I think that means that only empty directories are included in the output |
Rustup does the unpacking of tar files here: https://github.com/rust-lang-nursery/rustup.rs/blob/master/src/rustup-dist/src/component/package.rs#L202, however unpack requires all intermediary directories to have been created: https://docs.rs/tar/0.4.11/tar/struct.Entry.html#method.unpack |
Is it obvious to anyone how to change the tar command to include the directories again? I think we could just remove all of "( -type d -empty ) -or ( -not -type d ) " but I'm not sure. Safe thing would be to just revert rust-installer. @alexcrichton What time does the next nightly start building? |
@brson I believe the |
Haha, yes, exactly like rust-lang/rust-installer#61. |
@brson just removing the
@jonhoo yes, that restores the order in which A fix on the rustup side would be to always create the full path (just like
What is the best way to test if it works? |
I submitted a PR to update rust-installer with @TimNN's patch to use the simple tar invocation. It can be reoptimized later.
That does seem reasonable. After it was in place for some length of time we could modify the tarballs again to remove these directories.
Hm, it's actually not simple to feed rustup an arbitrary tarball that I can think of. The easiest way to test might be to make the update and send it back through nightly and see if it breaks again. |
I hate tar. I prefer to use a single program like 7-zip that fetches by itself the files, compresses them, and later rebuilds the original directory tree and decompresses the files. |
Is there a way to fix this yet for travis, like a configuration setting to fetch the latest rustup? Tried to setup Travis CI, but it currently fails to install rustc: https://travis-ci.org/sharazam/printpdf/jobs/229028283#L131 |
@Sharazam If I were you (and to others who get this email), I'd enable the https://docs.travis-ci.com/user/languages/rust/#Choosing-the-Rust-version language: rust
rust:
- stable
- beta
- nightly
matrix:
allow_failures:
- rust: nightly EDIT: forgot to mention 'nightly Rust' |
@ranma42 FWIW in my Rust rewrite (rust-lang/rust#41569) I can easily tar just directories and then still have your rev-sorted file list. I've noted this issue, so I'll add something to that effect today. |
These changes configure the trust template to use the correct credentials and project name. The rest was left as is. There seems to be an issue with rustup at the moment rust-lang/rustup#1092. As suggested in rust-lang/rustup#1092 (comment) I've enabled the `allow_failures` feature for nightly builds.
@cuviper You're right that is probably easier and less error prone in your rewrite (I see that you also skip the temporary tar file... nice! :D ). |
See rust-lang/rustup#1092 Solution: pin nightly to a specific release
@Sharazam One way is to temporarily 'pin' your CI to a specific nightly from the archives with e.g. |
Update rust-installer to fix rust-lang/rustup#1092 r? @TimNN cc @alexcrichton @ranma42
Not actually fixed yet @bors! |
The fix is upstream and tomorrow's nightly should work. |
* Move CI to trust These changes configure the trust template to use the correct credentials and project name. The rest was left as is. There seems to be an issue with rustup at the moment rust-lang/rustup#1092. As suggested in rust-lang/rustup#1092 (comment) I've enabled the `allow_failures` feature for nightly builds. * Allow failures for beta channel * Add beta channels for travis and appveyor
Nightly works again (Travis). Thanks. |
Update tar and use new safe unpacking function The `unpack_in` function automatically handles the creation of the directories and validates the path name, but it is only available since version 0.4.11 of the `tar` crate. This is the rustup side of fixing #1092.
The `unpack` function assumes that the directory in which the file is being extracted exists, while most `tar` tools will automatically create the intermediate directories if they are missing. This would have avoided rust-lang#1092.
The `unpack` function assumes that the directory in which the file is being extracted exists, while most `tar` tools will automatically create the intermediate directories if they are missing. This would have avoided rust-lang#1092.
Ensure that intermediate directories exist when unpacking an entry The `unpack` function assumes that the directory in which the file is being extracted exists, while most `tar` tools will automatically create the intermediate directories if they are missing. This would have avoided #1092.
Ensure that intermediate directories exist when unpacking an entry The `unpack` function assumes that the directory in which the file is being extracted exists, while most `tar` tools will automatically create the intermediate directories if they are missing. This would have avoided #1092.
Just getting back into rust and installed rustup. Tried to install the nightly build and encountered the following error:
Not sure if this is a nightly issue, a rustup issue, or my own lack of experience with rustup. Currently running Linux Mint 18
The text was updated successfully, but these errors were encountered: