ci: pin Atheris fuzzing job to Python 3.11#142
Merged
Conversation
The atheris-fuzzing job had no Python pin, so uv floated to its newest managed interpreter (cpython 3.14.5). atheris 2.3.0 ships prebuilt wheels only through cp311 — on 3.14 uv falls back to building from sdist, whose build step (find_libfuzzer.sh) requires clang + libFuzzer. The self-hosted 'cachekit' runner has neither, so 'uv sync' failed before any fuzzing ran, turning Security Deep red on an install error (not a fuzz finding). Pin both 'uv sync' and 'uv run' to 3.11 (newest version with an atheris wheel; already in the CI matrix) so the wheel installs directly — no source build, no clang dependency on the runner.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (1)
WalkthroughThe GitHub Actions workflow for security-deep fuzzing is updated to explicitly pin the Atheris fuzzing job to Python 3.11. The ChangesAtheris Fuzzing Python Version Pin
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~5 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The
Security Deepworkflow has been failing on the Atheris Python-Rust Fuzzing job (run 26693957972). It is not a fuzz finding — no crashes were found, the fuzzer never started. The job dies at dependency install.Root cause
The
atheris-fuzzingjob had no Python pin, souvfloated to its newest managed interpreter —cpython-3.14.5. Butatheris==2.3.0ships prebuilt wheels only through cp311 (cp36–cp311; none for 3.12/3.13/3.14). On 3.14,uvfell back to building atheris from sdist, whose build step (find_libfuzzer.sh) requires clang + libFuzzer:The self-hosted
cachekitrunner has neither, souv syncexited 1 before any fuzzing ran. It started failing when uv's bundled Python catalog advanced past atheris's wheel coverage.Fix
Pin both
uv syncanduv runto Python 3.11 — the newest version with an atheris wheel (already in the CI matrix). The wheel installs directly: no source build, no clang dependency on the runner. Both invocations are pinned becauseuv runre-resolves the interpreter independently.Pinning to 3.12 would not work — atheris 2.3.0 has no cp312 wheel either.
Testing
actionlintpasses (pre-commit).Non-blocking job (nightly Security Deep, doesn't gate releases), but it was hiding real future fuzz findings while red.
Summary by CodeRabbit