Skip to content

feat(bug_finding): Add incremental build image support for faster fuzzer builds #19

@acorn421

Description

@acorn421

Summary

Add support for incremental build images (inc-address, inc-undefined tags) to the bug-finding CRS to enable faster fuzzer builds.

Motivation

Currently, the bug-finding CRS builds project images from scratch every time. The bug-fixing CRS already supports incremental build images that can significantly reduce build times by using pre-built images with dependencies already compiled.

Current State

bug_finding CRS

  • No incremental build image support
  • Always builds from base OSS-Fuzz project image
  • Image tags: {project}_{crs_name}_builder[:source_tag]

bug_fixing CRS (reference implementation)

  • Supports incremental build images via inc-{sanitizer} tags
  • Image sources (in priority order):
    1. Local: gcr.io/oss-fuzz/{project}:inc-{sanitizer}
    2. OSS-Fuzz format: aixcc-afc/{project}:inc-{sanitizer}
    3. Remote registry: ghcr.io/team-atlanta/crsbench/{project}:inc-{sanitizer}
  • Key functions in bug_fixing/src/oss_patch/functions.py:
    • ensure_inc_build_image() - Ensures inc-build image is available
    • get_inc_build_remote_image_name() - Gets remote registry image name
    • get_ossfuzz_inc_image_name() - Gets OSS-Fuzz compatible image name

Ideas

  • The simplest approach might be to retag the docker image from inc-address to latest inside the dind container during CRS run

References

  • bug_fixing implementation: bug_fixing/src/oss_patch/functions.py:696-789
  • Incremental build checker: bug_fixing/src/oss_patch/inc_build_checker/

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions