google / oss-fuzz

OSS-Fuzz - continuous fuzzing for open source software.
https://google.github.io/oss-fuzz
Apache License 2.0
10.13k stars 2.15k forks source link

Update default Rust to nightly-2024-02-12 #12075

Closed alexcrichton closed 1 week ago

alexcrichton commented 2 weeks ago

This commit updates the default version of Rust installed for fuzzing to the last nightly of Rust that used LLVM 17. The next version uses LLVM 18.1.7 which is incompatible with the fuzz infrastructure's own LLVM which is currently 18.0.0. This is intended to update the Rust toolchain as far as possible without causing coverage incompatibilities.

This additionally updates a few pinned projects to all use this nightly as well. Furthermore the containers are now configured to by-default ignore rust-toolchain and rust-toolchain.toml files which will force this particular toolchain to be used.

alexcrichton commented 2 weeks ago

Ok I've updated this as recommended in #12077 to update Rust as far as possible before Rust started using LLVM 18.1.7. This should then be a relatively routine update of rustc without breaking coverage information.

alexcrichton commented 2 weeks ago

Looks like the libfuzzer coverage build for x86_64 failed in CI with the reasons as "System.IO.IOException: No space left on device" (from the summary) (if someone wouldn't mind kicking that with a retry)

maflcko commented 2 weeks ago

The CI is underpowered for infra changes. This needs a full rust trial run from a maintainer of this repo.

maflcko commented 1 week ago

cc @jonathanmetzman for a trial run

jonathanmetzman commented 1 week ago

/gcbrun trial_build.py rust

alexcrichton commented 1 week ago

Reading over the trial build my naive interpretation is that it looks like things passed, but one of y'all more familiar with the output there probably want to double-check me. Given the number of what I thought were spurious failures on https://github.com/google/oss-fuzz/pull/12077 I'm surprised that there are seemingly zero failures.

jonathanmetzman commented 1 week ago

The other one is testing an order of magnitude more projects. This Looks ok

jonathanmetzman commented 1 week ago

Can i land this now? Or do I need to wait for the other PR?

alexcrichton commented 1 week ago

This should be good to go yeah, no blockers on my end at least

maflcko commented 1 week ago

Yes, this is good to go. The motivation is to get almost all of rust 1.77 (https://blog.rust-lang.org/2024/03/21/Rust-1.77.0.html#stabilized-apis) into OSS-Fuzz by default (no need for each project to do it themselves locally).