-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
Unexpected internal error when doing nightly build and then stable build #8472
Labels
A-rebuild-detection
Area: rebuild detection and fingerprinting
C-bug
Category: bug
regression-from-stable-to-nightly
Regression in nightly that previously worked in stable.
Comments
Thanks for the report! This is essentially the same as #8298, though triggered by a different change (#8421). The repro:
I should have remembered that case during review, since I had just been looking at #8298. |
ehuss
added
A-rebuild-detection
Area: rebuild detection and fingerprinting
regression-from-stable-to-nightly
Regression in nightly that previously worked in stable.
labels
Jul 9, 2020
I've tried to fix this in #8473 by ensuring that the reason bin/rlib works works for dylib/cdylib as well. |
bors
added a commit
that referenced
this issue
Jul 9, 2020
Avoid colliding with older Cargo fingerprint changes The fingerprint format Cargo stores changed recently in a way that older Cargos cannot understand. Unfortunately though older Cargos are colliding on some compilation units trying to read the new format and they're bailing out. This commit fixes this issue by ensuring that the location for fingerprint metadata is different in older Cargos and newer Cargos. Fingerprint metadata is always stored in a location with a hash in the file name. This hash typically includes the hash of rustc's version information itself, but for units which don't have a `Metadata` it's a much simpler hash which is much more likely to collide with other versions of Cargo. The fix in this commit is to extract the metadata version that we're hashing to a constant, and then also hash it for generating a filesystem location to house fingerprint data for a unit that has no `Metadata`. Closes #8472 Closes #8298
ehuss
pushed a commit
to ehuss/cargo
that referenced
this issue
Jul 15, 2020
Avoid colliding with older Cargo fingerprint changes The fingerprint format Cargo stores changed recently in a way that older Cargos cannot understand. Unfortunately though older Cargos are colliding on some compilation units trying to read the new format and they're bailing out. This commit fixes this issue by ensuring that the location for fingerprint metadata is different in older Cargos and newer Cargos. Fingerprint metadata is always stored in a location with a hash in the file name. This hash typically includes the hash of rustc's version information itself, but for units which don't have a `Metadata` it's a much simpler hash which is much more likely to collide with other versions of Cargo. The fix in this commit is to extract the metadata version that we're hashing to a constant, and then also hash it for generating a filesystem location to house fingerprint data for a unit that has no `Metadata`. Closes rust-lang#8472 Closes rust-lang#8298
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
A-rebuild-detection
Area: rebuild detection and fingerprinting
C-bug
Category: bug
regression-from-stable-to-nightly
Regression in nightly that previously worked in stable.
Problem
I had Rust stable 1.44.1 installed and working fine. I then added nightly and did a build with:
which worked fine. Then I tried to build on stable again, and I got an error:
However,
cargo run
(without--release
) still works.Steps
Method A:
cargo clean
cargo run --release
cargo +nightly run --release
cargo run --release
Method B:
cargo clean
cargo +nightly run --release
cargo run --release
cargo +nightly run --release
cargo run --release
Possible Solution(s)
Just a workaround, but
cargo clean
resolves the issue.Notes
Output of
cargo version
:The text was updated successfully, but these errors were encountered: