Skip to content

ci/oss-fuzz: switch to Ubuntu 24.04#39371

Merged
yuwata merged 1 commit intosystemd:mainfrom
yuwata:ci-oss-fuzz
Oct 21, 2025
Merged

ci/oss-fuzz: switch to Ubuntu 24.04#39371
yuwata merged 1 commit intosystemd:mainfrom
yuwata:ci-oss-fuzz

Conversation

@yuwata
Copy link
Copy Markdown
Member

@yuwata yuwata commented Oct 19, 2025

With google/oss-fuzz#14112 and google/oss-fuzz#14128, we can now use Ubuntu 24.04. Let's bump the image version.

@yuwata yuwata added the ci label Oct 19, 2025
@github-actions github-actions bot added the tests label Oct 19, 2025
@yuwata yuwata marked this pull request as ready for review October 19, 2025 04:54
@github-actions github-actions bot added the please-review PR is ready for (re-)review by a maintainer label Oct 19, 2025
@yuwata
Copy link
Copy Markdown
Member Author

yuwata commented Oct 19, 2025

@yuwata
Copy link
Copy Markdown
Member Author

yuwata commented Oct 19, 2025

cc @evverx

jobs:
Fuzzing:
# FIXME: Figure out why 32-bit applications fail to run in docker on Ubuntu 24.04.
runs-on: ubuntu-22.04
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

For the record it failed because of https://bugs.launchpad.net/ubuntu/+source/linux-signed-azure/+bug/2071445 and was addressed in actions/runner-images#9977

With google/oss-fuzz#14112 and google/oss-fuzz#14128

Those changes should make it possible to switch the base builder/runner images from Ubuntu 20.04 to Ubuntu 24.04 but they aren't ready yet unfortunately (the LLVM and rust toolchain haven't been updated there yet and things like that).

I think 32-bit systemd builds are going to be broken because of libcrypt once systemd switches to Ubuntu 24.04 on OSS-Fuzz.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Just to clarify this PR makes sense of course. But under the hood CIFuzz/OSS-Fuzz still uses Ubuntu 20.04 to build/run the fuzz targets. To switch to Ubuntu 24.04 it should be necessary to change project.yaml and Dockerfile in the OSS-Fuzz repository but it hasn't been officially announced that it's supported yet. The images are already built though.

Copy link
Copy Markdown
Member Author

@yuwata yuwata Oct 19, 2025

Choose a reason for hiding this comment

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

Thank you for the references for the background of the removed comment!

I think 32-bit systemd builds are going to be broken because of libcrypt once systemd switches to Ubuntu 24.04 on OSS-Fuzz.

Are they still uses libcrypt instead of libxcrypt?
At least our CIs are green even on 32-bit.

Just to clarify this PR makes sense of course. But under the hood CIFuzz/OSS-Fuzz still uses Ubuntu 20.04 to build/run the fuzz targets. To switch to Ubuntu 24.04 it should be necessary to change project.yaml and Dockerfile in the OSS-Fuzz repository but it hasn't been officially announced that it's supported yet. The images are already built though.

OK. Let's bump the image for the CIs now, and update OSS-Fuzz repository later when they are ready.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Are they still uses libcrypt instead of libxcrypt?

I haven't looked at that closely but given that 32-bit builds are just 64-bit builds in a trench coat (with -m32 and i386 packages) I'm guessing some i386 packages are missing and should be brought to the environment by the systemd build script or something like that.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I see...

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

BTW, if you think this is ok to go, then please push the approval button.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I do think it should be good to go (though I think the commit message should point to https://bugs.launchpad.net/ubuntu/+source/linux-signed-azure/+bug/2071445 and actions/runner-images#9977) but as far as I understand it should be approved by "at least one project maintainer who is not the author" so my approval doesn't make any difference here. Though in this case it can probably fall into trivial changes and can be merged without additional approvals.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Updated the commit message.

but as far as I understand it should be approved by "at least one project maintainer who is not the author" so my approval doesn't make any difference here. Though in this case it can probably fall into trivial changes and can be merged without additional approvals.

Strictly speaking, we recently explicitly documented so. But, still approval from non-maintainer is meaningful and welcome, especially from the one who knows well about the change. E.g. in this case, you are much familiar about the infra than me and other maintainers. So, your approval and comments are highly appreciated.

With
google/oss-fuzz#14112 and
google/oss-fuzz#14128,
we can now use Ubuntu 24.04. Let's bump the image version.

Note, the i386 build failure mentioned in the removed comment is related to
https://bugs.launchpad.net/ubuntu/+source/linux-signed-azure/+bug/2071445
actions/runner-images#9977
and has been already fixed.
@yuwata
Copy link
Copy Markdown
Member Author

yuwata commented Oct 20, 2025

(I manually stopped several unrelated CIs, to reduce pressure to CI infra.)

@yuwata
Copy link
Copy Markdown
Member Author

yuwata commented Oct 20, 2025

Setting the green label based on the @evverx's approval comment above.

@yuwata yuwata added good-to-merge/waiting-for-ci 👍 PR is good to merge, but CI hasn't passed at time of review. Please merge if you see CI has passed and removed please-review PR is ready for (re-)review by a maintainer labels Oct 20, 2025
@evverx
Copy link
Copy Markdown
Contributor

evverx commented Oct 21, 2025

@yuwata I opened #39395 with those 32-bit failures. I assume you are going to bump those things so hopefully it should make it a bit easier.

@evverx
Copy link
Copy Markdown
Contributor

evverx commented Oct 21, 2025

Before I forget ClusterFuzzLite (https://github.com/systemd/systemd/tree/main/.clusterfuzzlite) should be bumped too eventually by updating Dockerfile and adding project.yaml with the base_os_version field. That being said I no longer use that stuff so from my perspective it should be fine to trim it. The only place I'm aware of where it's still used is the RedHat fork of systemd on GitHub.

@yuwata
Copy link
Copy Markdown
Member Author

yuwata commented Oct 21, 2025

Thanks. I will see about clusterfuzz later.

@yuwata yuwata merged commit 02fea5b into systemd:main Oct 21, 2025
30 of 52 checks passed
@yuwata yuwata deleted the ci-oss-fuzz branch October 21, 2025 06:09
@github-actions github-actions bot removed the good-to-merge/waiting-for-ci 👍 PR is good to merge, but CI hasn't passed at time of review. Please merge if you see CI has passed label Oct 21, 2025
@evverx
Copy link
Copy Markdown
Contributor

evverx commented Oct 21, 2025

I think it all can wait until systemd starts to bump its dependencies. Given that it was postponed I think by then OSS-Fuzz should start officially supporting Ubuntu 24.04 images.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

2 participants