Conversation
| runs: | ||
| using: 'docker' | ||
| image: 'docker://gcr.io/oss-fuzz-base/clusterfuzzlite-build-fuzzers:v1' | ||
| image: 'docker://gcr.io/oss-fuzz-base/clusterfuzzlite-build-fuzzers:ubuntu-24-04-v1' |
There was a problem hiding this comment.
FWIW I'm not sure how safe it is to change it here. As far as I can remember the v1 tag used by projects using CFLite was updated automatically and I don't think it should start pointing at these versions automatically (because it can just break stuff that doesn't work with Ubuntu 24.04 yet. For example avahi fails under MSan on Ubuntu 24.04 (avahi/avahi#787) so I'd keep Ubuntu 20.04 there for now).
(If it doesn't affect the v1 tag and another tag is going to be added instead it should be fine of course)
There was a problem hiding this comment.
Just to clarify I mean https://github.com/google/clusterfuzzlite/tags and things like
google/clusterfuzzlite/actions/build_fuzzers@v1used in actions https://google.github.io/clusterfuzzlite/running-clusterfuzzlite/github-actions/#pr-fuzzing.
Projects pulling main instead of v1 probably know what they're doing so they probably should be fine with breaking changes.
There was a problem hiding this comment.
I understand your concern. The plan here is to re-release v1 specifically with the fix from google/oss-fuzz#14388. The default fallback behavior will remain ubuntu-20-04. So, unless someone explicitly changes base_os_version to ubuntu-24-04 in project.yaml, it will continue running on ubuntu-20-04. We can set the default to ubuntu-24-04 in v2 (or on the main branch) once the migration is complete.
There was a problem hiding this comment.
I'm also worried about this, but your explanation makes sense.
There was a problem hiding this comment.
Agreed. It makes sense. I guess I thought that it would start pulling ubuntu-24-04 left and right but it isn't the case. As long as ubuntu-20-04 is used by default it should be fine then.
| runs: | ||
| using: 'docker' | ||
| image: 'docker://gcr.io/oss-fuzz-base/clusterfuzzlite-run-fuzzers:v1' | ||
| image: 'docker://gcr.io/oss-fuzz-base/clusterfuzzlite-run-fuzzers:ubuntu-24-04-v1' |
There was a problem hiding this comment.
Is this change safe to make? Or do we pivot back to 20 if they aren't opting into 24?
There was a problem hiding this comment.
As far as I understand the build-fuzzers/run-fuzzers entrypoints can switch to Ubuntu 24.04 only so it seems by default the action should just keep using clusterfuzzlite-run-fuzzers:v1. That being said based on my experiments (unlike, say, CIFuzz) CFlite never reaches the point where it can pivot to Ubuntu 24.04. It prints
2025-12-14T03:40:54.3215386Z 2025-12-14 03:40:54,319 - root - INFO - ci_system: <continuous_integration.ExternalGithub object at 0x7f41f6dfa750>.
2025-12-14T03:40:54.3216462Z 2025-12-14 03:40:54,320 - root - INFO - ClusterFuzzDeployment: <clusterfuzz_deployment.ClusterFuzzLite object at 0x7f41f6dbf190>.
2025-12-14T03:40:54.3217237Z 2025-12-14 03:40:54,320 - root - INFO - ExternalGithub: preparing for fuzzer build.and proceeds with Ubuntu 20.04 where it fails. My guess would be that the ExternalGithub part should be tweaked.
There was a problem hiding this comment.
It took me a while but I figured out how to get v1 to pivot to Ubuntu 24.04. It doesn't work out of the box because prepare_for_fuzzer_build extracts the code after the entrypoints look for project.yaml so they fall back to legacy. It can be fixed by adding actions/checkout before google/clusterfuzzlite/actions/build_fuzzers@v1. It's still kludgy but it's not different from CIFuzz and certainly better than forks.
There was a problem hiding this comment.
Just in case here is what it looks like https://github.com/avahi/avahi/pull/791/changes. The log contains
2026-03-26 13:31:19,656 - root - INFO - PROJECT_SRC_PATH not set. Using workspace: /github/workspace
2026-03-26 13:31:19,656 - root - INFO - Base OS version is Ubuntu 24.04, but running in a different OS. Pivoting to Ubuntu 24.04 container.
as expected.
I think this PR can probably be closed because it isn't backward-compatible in the sense that it always pulls 24.04 without falling back to 20.04.
There was a problem hiding this comment.
I think this PR can probably be closed
Having thought about this it shouldn't be closed of course. It would be better to tag it with v2 so that v1 would keep pulling 20.04 and v2 would pull 24.04 (without having to pull 20.04 and then pivot to 24.04).
The ubuntu-24-04 images are built now (google/oss-fuzz#14382) and the issue where the PROJECT_SRC_PATH kludge had to be added is addressed in google/oss-fuzz#14388. It can be merged once the action starts fetching the ubuntu-24-04 images in google/clusterfuzzlite#146.
The ubuntu-24-04 images are built now (google/oss-fuzz#14382) and the issue where the PROJECT_SRC_PATH kludge had to be added is addressed in google/oss-fuzz#14388. It can be merged once the action starts fetching the ubuntu-24-04 images in google/clusterfuzzlite#146.
The ubuntu-24-04 images are built now (google/oss-fuzz#14382) and the issue where the PROJECT_SRC_PATH kludge had to be added is addressed in google/oss-fuzz#14388. It can be merged once the action starts fetching the ubuntu-24-04 images in google/clusterfuzzlite#146.
The ubuntu-24-04 images are built now (google/oss-fuzz#14382) and the issue where the PROJECT_SRC_PATH kludge had to be added is addressed in google/oss-fuzz#14388. It can be merged once the action starts fetching the ubuntu-24-04 images in google/clusterfuzzlite#146.
The ubuntu-24-04 images are built now (google/oss-fuzz#14382) and the issue where the PROJECT_SRC_PATH kludge had to be added is addressed in google/oss-fuzz#14388. It can be merged once the action starts fetching the ubuntu-24-04 images in google/clusterfuzzlite#146.
Until google/oss-fuzz#14264 and google/clusterfuzzlite#146 are merged, let's use forked repositories.
The ubuntu-24-04 images are built now (google/oss-fuzz#14382) and the issue where the PROJECT_SRC_PATH kludge had to be added is addressed in google/oss-fuzz#14388. It can be merged once the action starts fetching the ubuntu-24-04 images in google/clusterfuzzlite#146.
The ubuntu-24-04 images are built now (google/oss-fuzz#14382) and the issue where the PROJECT_SRC_PATH kludge had to be added is addressed in google/oss-fuzz#14388. It can be merged once the action starts fetching the ubuntu-24-04 images in google/clusterfuzzlite#146.
The ubuntu-24-04 images are built now (google/oss-fuzz#14382) and the issue where the PROJECT_SRC_PATH kludge had to be added is addressed in google/oss-fuzz#14388. It can be merged once the action starts fetching the ubuntu-24-04 images in google/clusterfuzzlite#146.
by using the `base_os_version` field and switching to the ubuntu-24-04 base builder image. The checkout action is needed to get it to pivot to Ubuntu 24.04 by analogy with what CIFuzz does. Without that the action can't find project.yaml, falls back to `legacy` and keeps using Ubuntu 20.04. See also google/clusterfuzzlite#146
by using the `base_os_version` field and switching to the ubuntu-24-04 base builder image. The checkout action is needed to get it to pivot to Ubuntu 24.04 by analogy with what CIFuzz does. Without that the action can't find project.yaml, falls back to `legacy` and keeps using Ubuntu 20.04. See also google/clusterfuzzlite#146
This PR updates the build and run actions to use the new Ubuntu 24.04-v1 images.
This is part of the migration of OSS-Fuzz and ClusterFuzzLite to Ubuntu 24.04. The images have been prepared in the oss-fuzz repository and are ready for use.