google / google/oss-fuzz

Centipede not enabled by default on ClusterFuzz

Open
#11,964 6 comments 0 reactions 0 assignees View on GitHub
Dominant language
Shell
Stars
12.6k
Forks
2.9k
Avg merge
2d 2h
Merged PRs (30d)
62

Description

Hi,

According to the [docs](https://google.github.io/oss-fuzz/getting-started/new-project-guide/#fuzzing_engines) and [this line](https://github.com/google/oss-fuzz/blob/b07cc908abf97529a95a4dd9b3d152bf4f101e71/infra/build/functions/build_project.py#L47), Centipede should be enabled by default. Yet, looking at the build logs, it is not built for projects that do not explicitly enable it.

I checked only a few projects, but let's consider the following examples:

**bitcoin-core**
centipede is explicitly [enabled](https://github.com/google/oss-fuzz/blob/b07cc908abf97529a95a4dd9b3d152bf4f101e71/projects/bitcoin-core/project.yaml#L18-L19). The latest build log contains:
```
Starting Step #12 - "compile-centipede-address-x86_64"
...
Starting Step #21 - "compile-centipede-none-x86_64"
```

**abseil-cpp**
No `fuzzing_engines` [defined](https://github.com/google/oss-fuzz/blob/b07cc908abf97529a95a4dd9b3d152bf4f101e71/projects/abseil-cpp/project.yaml) and no centipede in the latest build log.

Contributor guide

Open the contributing guide

Research direction

Start in infra/build/functions/build_project.py at the default fuzzing-engine handling, then compare it with projects/bitcoin-core/project.yaml and projects/abseil-cpp/project.yaml. Check the related build logs to determine why an omitted fuzzing_engines setting does not produce Centipede steps. Done means projects without an explicit setting build Centipede as the documentation describes.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, yaml
Domain
build-system, testing-qa
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.