-
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
Fixes cargo package
buffering entire contents into memory
#7946
Conversation
Added a helper function for util::hex::hash_64 that uses streams the content instead of reading through the entire content in one go.
r? @Eh2406 (rust_highfive has picked a reviewer for you, use r? to override) |
src/cargo/util/hex.rs
Outdated
if n == 0 { | ||
break; | ||
} | ||
hasher.write(&buf); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
comparing it to
cargo/src/cargo/util/sha256.rs
Lines 20 to 29 in ab2b2c0
pub fn update_file(&mut self, mut file: &File) -> io::Result<&mut Sha256> { | |
let mut buf = [0; 64 * 1024]; | |
loop { | |
let n = file.read(&mut buf)?; | |
if n == 0 { | |
break Ok(self); | |
} | |
self.update(&buf[..n]); | |
} | |
} |
I'd have expected
hasher.write(&buf[..n]);
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oof, sorry about that.
I am getting this error
So I am not sure if it actually works. Edit:...Or maybe this is proofs that it works? |
src/cargo/util/hex.rs
Outdated
let mut hasher = SipHasher::new_with_keys(0, 0); | ||
let mut buf = [0; 64 * 1024]; | ||
loop { | ||
let n = file.read(&mut buf).unwrap(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The original code returns errors, instead of panicing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, I have changed it but now all the tests are failing..
Thanks for reviewing! |
@bors: r+ |
📌 Commit 0ac7aee has been approved by |
☀️ Test successful - checks-azure |
Update cargo, clippy Closes #69601 ## cargo 16 commits in e57bd02999c9f40d52116e0beca7d1dccb0643de..bda50510d1daf6e9c53ad6ccf603da6e0fa8103f 2020-02-21 20:20:10 +0000 to 2020-03-02 18:05:34 +0000 - Fix rare failure in collision_export test. (rust-lang/cargo#7956) - Ignore broken Cargo.toml in git sources (rust-lang/cargo#7947) - Add more fingerprint mtime debug logging. (rust-lang/cargo#7952) - Fix plugin tests for latest nightly. (rust-lang/cargo#7955) - Simplified usage code of SipHasher (rust-lang/cargo#7945) - Add a special case for git config discovery inside tests (rust-lang/cargo#7944) - Fixes issue rust-lang/cargo#7543 (rust-lang/cargo#7946) - Filter out cfgs which should not be used during build (rust-lang/cargo#7943) - Provide extra context on a query failure. (rust-lang/cargo#7934) - Try to clarify `cargo metadata`'s relationship with the workspace. (rust-lang/cargo#7927) - Update libgit2 dependency (rust-lang/cargo#7939) - Fix link in comment (rust-lang/cargo#7936) - Enable `cargo doc --open` tests on macos. (rust-lang/cargo#7932) - build-std: remove sysroot probe (rust-lang/cargo#7931) - Try to clarify how feature flags work on the "current" package. (rust-lang/cargo#7928) - Add extra details in the new feature resolver doc comment. (rust-lang/cargo#7918) ## clippy 6 commits in fc5d0cc..8b7f7e6 2020-02-24 05:58:17 +0000 to 2020-03-02 20:00:31 +0000 - Rustup to #69469 (rust-lang/rust-clippy#5254) - Some rustups (rust-lang/rust-clippy#5247) - Update git2 to 0.12 (rust-lang/rust-clippy#5232) - Rustup to #61812 (rust-lang/rust-clippy#5231) - Add lint to improve floating-point expressions (rust-lang/rust-clippy#4897) - Do not run deploy action on other repos (rust-lang/rust-clippy#5222)
cargo package
buffering entire contents into memory
Added a helper function for
util::hex::hash_64
that uses streamsthe content instead of reading through the entire content in one
go.
Edit: Should I add test cases for this?
Edit2: Per #7543