Skip to content

CI: Atheris fuzzing fails on Python 3.12 - PRECALL opcode removed #19

@27Bslash6

Description

@27Bslash6

Summary

The Atheris Python-Rust Fuzzing job fails because atheris==2.3.0 cannot build on Python 3.12+.

Error

src/native/codetable_gen.cc:46:17: error: 'PRECALL' was not declared in
this scope; did you mean 'CALL'?
   46 |   opcode_caches[PRECALL] = 1;
      |                 ^~~~~~~
      |                 CALL
error: command '/usr/bin/c++' failed with exit code 1

Root Cause

Python 3.12 removed the PRECALL opcode that existed in Python 3.11. The Atheris library (v2.3.0) hardcodes this opcode, making it incompatible with Python 3.12+.

Upstream issue: google/atheris#88

Failed Run

https://github.com/cachekit-io/cachekit-py/actions/runs/20219774104

Options

  1. Skip for now: Disable Atheris fuzzing until upstream releases a Python 3.12-compatible version
  2. Pin Python 3.11: Run Atheris fuzzing specifically on Python 3.11 instead of 3.12
  3. Monitor upstream: Atheris has an open issue for Python 3.12 support - await fix

Recommendation

Option 2: Pin fuzzing job to Python 3.11. This allows continued security testing while waiting for upstream compatibility.

- name: Set up Python
  run: uv python install 3.11  # Use 3.11 for Atheris compatibility

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingchoreMaintenance, CI/CD, toolingciCI/CD pipeline issuespythonPython library

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions