google / google/oss-fuzz

Centipede check_build fails on OSS-Fuzz but passes locally for kfilemetadata

Open
#15,905 1 comment 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

The cloud build job failed during the Centipede build checks for `kfilemetadata`.

The build log reports:

```
CF table dumping failed
Could not get CFTable from .../epubextractor_fuzzer
The binary should be built with clang 16 and with -fsanitize-coverage=control-flow flag.
```

followed by:

```
Bus error (core dumped)
```

The following fuzzers failed: `epubextractor_fuzzer`, `odfextractor_fuzzer`, and `office2007extractor_fuzzer`

Full build log:
https://oss-fuzz-build-logs.storage.googleapis.com/log-483a23af-379e-4171-b2a4-0092cae10979.txt

I tried reproducing the failure locally using the commands suggested by the build log. First I built the fuzzers:

```bash
python infra/helper.py shell --engine centipede --sanitizer none kfilemetadata

# inside the container
compile
```

Then I checked the failing target:

```bash
python infra/helper.py check_build --engine centipede --sanitizer none kfilemetadata epubextractor_fuzzer
```

Result:

```
INFO:__main__:Running: docker run --privileged --shm-size=2g --platform linux/amd64 --rm -i -e FUZZING_ENGINE=centipede -e SANITIZER=none -e ARCHITECTURE=x86_64 -e FUZZING_LANGUAGE=c++ -e HELPER=True -v /workspaces/oss-fuzz/build/out/kfilemetadata:/out -t gcr.io/oss-fuzz-base/base-runner:latest test_one.py epubextractor_fuzzer.
INFO: performing bad build checks for /tmp/not-out/tmpf9kfxo1g/epubextractor_fuzzer
INFO:__main__:Check build passed.
```

I also checked all fuzzers:

```bash
python infra/helper.py check_build --engine centipede --sanitizer none kfilemetadata
```

Result:

```
INFO:__main__:Running: docker run --privileged --shm-size=2g --platform linux/amd64 --rm -i -e FUZZING_ENGINE=centipede -e SANITIZER=none -e ARCHITECTURE=x86_64 -e FUZZING_LANGUAGE=c++ -e HELPER=True -v /workspaces/oss-fuzz/build/out/kfilemetadata:/out -t gcr.io/oss-fuzz-base/base-runner:latest test_all.py.
INFO: performing bad build checks for /tmp/not-out/tmpjpo1u8on/taglibextractor_fuzzer
INFO: performing bad build checks for /tmp/not-out/tmpjpo1u8on/plaintextextractor_fuzzer
INFO: performing bad build checks for /tmp/not-out/tmpjpo1u8on/ffmpegextractor_fuzzer
INFO: performing bad build checks for /tmp/not-out/tmpjpo1u8on/exiv2extractor_fuzzer
INFO: performing bad build checks for /tmp/not-out/tmpjpo1u8on/officeextractor_fuzzer
INFO: performing bad build checks for /tmp/not-out/tmpjpo1u8on/poextractor_fuzzer
INFO: performing bad build checks for /tmp/not-out/tmpjpo1u8on/epubextractor_fuzzer
INFO: performing bad build checks for /tmp/not-out/tmpjpo1u8on/office2007extractor_fuzzer
INFO: performing bad build checks for /tmp/not-out/tmpjpo1u8on/popplerextractor_fuzzer
INFO: performing bad build checks for /tmp/not-out/tmpjpo1u8on/xmlextractor_fuzzer
INFO: performing bad build checks for /tmp/not-out/tmpjpo1u8on/mobiextractor_fuzzer
INFO: performing bad build checks for /tmp/not-out/tmpjpo1u8on/fb2extractor_fuzzer
INFO: performing bad build checks for /tmp/not-out/tmpjpo1u8on/postscriptdscextractor_fuzzer
INFO: performing bad build checks for /tmp/not-out/tmpjpo1u8on/odfextractor_fuzzer
INFO: performing bad build checks for /tmp/not-out/tmpjpo1u8on/pngextractor_fuzzer
INFO: performing bad build checks for /tmp/not-out/tmpjpo1u8on/krita_fuzzer
INFO:__main__:Check build passed.
```

I was unable to reproduce the failure locally.

Environment:

```
OSS-Fuzz checkout: master

Host:
Linux codespaces-4df05e 6.8.0-1052-azure x86_64

GitHub Codespaces
Ubuntu 24.04.4 LTS
4 vCPUs (AMD EPYC 7763)
32 GB machine
Kernel 6.8.0-1052-azure
```

Should we disable Centipede in `kfilemetadata` for now?

Contributor guide

Open the contributing guide

Research direction

Start with the linked OSS-Fuzz build log, then run infra/helper.py check_build.py through the check_build entry points for kfilemetadata and the three failing fuzzers. Compare the cloud Centipede environment with the local compile and check_build results; done means the cloud build no longer reports CF table failures or the bus error for epubextractor_fuzzer, odfextractor_fuzzer, and office2007extractor_fuzzer.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, python
Domain
build-system, testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.