Skip to content
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

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

Merged
merged 1 commit into from
Jun 21, 2024

Conversation

alexcrichton
Copy link
Contributor

@alexcrichton alexcrichton commented Jun 17, 2024

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.

Copy link
Contributor

@maflcko maflcko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm otherwise

alexcrichton added a commit to alexcrichton/oss-fuzz that referenced this pull request Jun 17, 2024
This is done in the interest of assisting google#12075 and google#11626. Currently
the Rust toolchain cannot be updated because the latest nightly uses
LLVM 18.1.7 and coverage information breaks. This breakage is because
LLVM 18.1.7 records coverage information with version "9" but LLVM
18.0.0 recorded coverage information with version "8". This means that
the recordings created by Rust binaries use version "9" which are
unreadable by the processing that OSS-Fuzz does with the 18.0.0-based
toolchain using version "8".

This commit updates the Clang toolchain to the latest 18.x.x release to
get the two in sync so the same coverage recording version is used.
projects/askama/build.sh Outdated Show resolved Hide resolved
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 alexcrichton changed the title Update default Rust to nightly-2024-06-17 Update default Rust to nightly-2024-02-12 Jun 18, 2024
@alexcrichton
Copy link
Contributor Author

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.

Copy link
Contributor

@maflcko maflcko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm, Thanks!

@alexcrichton
Copy link
Contributor Author

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
Copy link
Contributor

maflcko commented Jun 18, 2024

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

alexcrichton added a commit to alexcrichton/oss-fuzz that referenced this pull request Jun 18, 2024
This is done in the interest of assisting google#12075 and google#11626. Currently
the Rust toolchain cannot be updated because the latest nightly uses
LLVM 18.1.7 and coverage information breaks. This breakage is because
LLVM 18.1.7 records coverage information with version "9" but LLVM
18.0.0 recorded coverage information with version "8". This means that
the recordings created by Rust binaries use version "9" which are
unreadable by the processing that OSS-Fuzz does with the 18.0.0-based
toolchain using version "8".

This commit updates the Clang toolchain to the latest 18.x.x release to
get the two in sync so the same coverage recording version is used.
@maflcko
Copy link
Contributor

maflcko commented Jun 20, 2024

cc @jonathanmetzman for a trial run

@jonathanmetzman
Copy link
Contributor

/gcbrun trial_build.py rust

@alexcrichton
Copy link
Contributor Author

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 #12077 I'm surprised that there are seemingly zero failures.

@jonathanmetzman
Copy link
Contributor

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

@jonathanmetzman
Copy link
Contributor

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

@alexcrichton
Copy link
Contributor Author

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

@maflcko
Copy link
Contributor

maflcko commented Jun 21, 2024

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).

@jonathanmetzman jonathanmetzman merged commit 3b9936f into google:master Jun 21, 2024
18 of 19 checks passed
alexcrichton added a commit to alexcrichton/oss-fuzz that referenced this pull request Jun 27, 2024
This is done in the interest of assisting google#12075 and google#11626. Currently
the Rust toolchain cannot be updated because the latest nightly uses
LLVM 18.1.7 and coverage information breaks. This breakage is because
LLVM 18.1.7 records coverage information with version "9" but LLVM
18.0.0 recorded coverage information with version "8". This means that
the recordings created by Rust binaries use version "9" which are
unreadable by the processing that OSS-Fuzz does with the 18.0.0-based
toolchain using version "8".

This commit updates the Clang toolchain to the latest 18.x.x release to
get the two in sync so the same coverage recording version is used.
alexcrichton added a commit to alexcrichton/oss-fuzz that referenced this pull request Jul 8, 2024
This is done in the interest of assisting google#12075 and google#11626. Currently
the Rust toolchain cannot be updated because the latest nightly uses
LLVM 18.1.8 and coverage information breaks. This breakage is because
LLVM 18.1.8 records coverage information with version "9" but LLVM
18.0.0 recorded coverage information with version "8". This means that
the recordings created by Rust binaries use version "9" which are
unreadable by the processing that OSS-Fuzz does with the 18.0.0-based
toolchain using version "8".

This commit updates the Clang toolchain to the latest 18.x.x release to
get the two in sync so the same coverage recording version is used.
alexcrichton added a commit to alexcrichton/oss-fuzz that referenced this pull request Jul 12, 2024
This is done in the interest of assisting google#12075 and google#11626. Currently
the Rust toolchain cannot be updated because the latest nightly uses
LLVM 18.1.8 and coverage information breaks. This breakage is because
LLVM 18.1.8 records coverage information with version "9" but LLVM
18.0.0 recorded coverage information with version "8". This means that
the recordings created by Rust binaries use version "9" which are
unreadable by the processing that OSS-Fuzz does with the 18.0.0-based
toolchain using version "8".

This commit updates the Clang toolchain to the latest 18.x.x release to
get the two in sync so the same coverage recording version is used.
fanquake pushed a commit to fanquake/oss-fuzz that referenced this pull request Jul 30, 2024
This is done in the interest of assisting google#12075 and google#11626. Currently
the Rust toolchain cannot be updated because the latest nightly uses
LLVM 18.1.8 and coverage information breaks. This breakage is because
LLVM 18.1.8 records coverage information with version "9" but LLVM
18.0.0 recorded coverage information with version "8". This means that
the recordings created by Rust binaries use version "9" which are
unreadable by the processing that OSS-Fuzz does with the 18.0.0-based
toolchain using version "8".

This commit updates the Clang toolchain to the latest 18.x.x release to
get the two in sync so the same coverage recording version is used.
fanquake pushed a commit to fanquake/oss-fuzz that referenced this pull request Jul 31, 2024
This is done in the interest of assisting google#12075 and google#11626. Currently
the Rust toolchain cannot be updated because the latest nightly uses
LLVM 18.1.8 and coverage information breaks. This breakage is because
LLVM 18.1.8 records coverage information with version "9" but LLVM
18.0.0 recorded coverage information with version "8". This means that
the recordings created by Rust binaries use version "9" which are
unreadable by the processing that OSS-Fuzz does with the 18.0.0-based
toolchain using version "8".

This commit updates the Clang toolchain to the latest 18.x.x release to
get the two in sync so the same coverage recording version is used.
fanquake pushed a commit to fanquake/oss-fuzz that referenced this pull request Aug 1, 2024
This is done in the interest of assisting google#12075 and google#11626. Currently
the Rust toolchain cannot be updated because the latest nightly uses
LLVM 18.1.8 and coverage information breaks. This breakage is because
LLVM 18.1.8 records coverage information with version "9" but LLVM
18.0.0 recorded coverage information with version "8". This means that
the recordings created by Rust binaries use version "9" which are
unreadable by the processing that OSS-Fuzz does with the 18.0.0-based
toolchain using version "8".

This commit updates the Clang toolchain to the latest 18.x.x release to
get the two in sync so the same coverage recording version is used.
fanquake pushed a commit to fanquake/oss-fuzz that referenced this pull request Aug 9, 2024
This is done in the interest of assisting google#12075 and google#11626. Currently
the Rust toolchain cannot be updated because the latest nightly uses
LLVM 18.1.8 and coverage information breaks. This breakage is because
LLVM 18.1.8 records coverage information with version "9" but LLVM
18.0.0 recorded coverage information with version "8". This means that
the recordings created by Rust binaries use version "9" which are
unreadable by the processing that OSS-Fuzz does with the 18.0.0-based
toolchain using version "8".

This commit updates the Clang toolchain to the latest 18.x.x release to
get the two in sync so the same coverage recording version is used.
catenacyber pushed a commit to catenacyber/oss-fuzz that referenced this pull request Aug 16, 2024
This is done in the interest of assisting google#12075 and google#11626. Currently
the Rust toolchain cannot be updated because the latest nightly uses
LLVM 18.1.8 and coverage information breaks. This breakage is because
LLVM 18.1.8 records coverage information with version "9" but LLVM
18.0.0 recorded coverage information with version "8". This means that
the recordings created by Rust binaries use version "9" which are
unreadable by the processing that OSS-Fuzz does with the 18.0.0-based
toolchain using version "8".

This commit updates the Clang toolchain to the latest 18.x.x release to
get the two in sync so the same coverage recording version is used.
catenacyber pushed a commit to catenacyber/oss-fuzz that referenced this pull request Sep 6, 2024
This is done in the interest of assisting google#12075 and google#11626. Currently
the Rust toolchain cannot be updated because the latest nightly uses
LLVM 18.1.8 and coverage information breaks. This breakage is because
LLVM 18.1.8 records coverage information with version "9" but LLVM
18.0.0 recorded coverage information with version "8". This means that
the recordings created by Rust binaries use version "9" which are
unreadable by the processing that OSS-Fuzz does with the 18.0.0-based
toolchain using version "8".

This commit updates the Clang toolchain to the latest 18.x.x release to
get the two in sync so the same coverage recording version is used.
catenacyber pushed a commit to catenacyber/oss-fuzz that referenced this pull request Sep 17, 2024
This is done in the interest of assisting google#12075 and google#11626. Currently
the Rust toolchain cannot be updated because the latest nightly uses
LLVM 18.1.8 and coverage information breaks. This breakage is because
LLVM 18.1.8 records coverage information with version "9" but LLVM
18.0.0 recorded coverage information with version "8". This means that
the recordings created by Rust binaries use version "9" which are
unreadable by the processing that OSS-Fuzz does with the 18.0.0-based
toolchain using version "8".

This commit updates the Clang toolchain to the latest 18.x.x release to
get the two in sync so the same coverage recording version is used.
catenacyber pushed a commit to catenacyber/oss-fuzz that referenced this pull request Sep 25, 2024
This is done in the interest of assisting google#12075 and google#11626. Currently
the Rust toolchain cannot be updated because the latest nightly uses
LLVM 18.1.8 and coverage information breaks. This breakage is because
LLVM 18.1.8 records coverage information with version "9" but LLVM
18.0.0 recorded coverage information with version "8". This means that
the recordings created by Rust binaries use version "9" which are
unreadable by the processing that OSS-Fuzz does with the 18.0.0-based
toolchain using version "8".

This commit updates the Clang toolchain to the latest 18.x.x release to
get the two in sync so the same coverage recording version is used.
@alexcrichton alexcrichton deleted the update-rust branch October 2, 2024 16:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants