Comments (9)
I suspect the reason is that the libpcap benchmark, and possibly other benchmarks from Oss-Fuzz, uses a different base-builder image than the base-builder Dockerfile of FuzzBench and there is some conflicting settings/software versions between them.
Do you have any suggestions, @jonathanmetzman ?
They do in fact use a different base image. libpcap uses the builder image from OSS-Fuzz. Benchmarks This difference causes enough issues that I think this should be changed. Filed #125 to fix this.
In the meantime I think I figured out this issue (as well as the git one, which is a result of relying on CWD being '/' which is not the case in OSS-Fuzz). This issue was caused by the fact that OSS-Fuzz's builder image defines CFLAGS. Setting CFLAGS to "" fixed the issue, will update #110 (and land it before my CI fix lands). This issue is tough to solve in the general case because docker doesn't make it easy to delete env variables. We could set it to "" as we do here, but this affects builds of some fuzzers. For example I think AFL won't be built with -O3
if CFLAGS="".
from fuzzbench.
Hi @jonathanmetzman. Thank you for your analysis of the issue. It seems to be flaky and it is very similar to this issue actions/checkout#23. The root cause could be that in the builder script I check out a merge commit. I am testing it locally with a normal commit to see how it goes.
from fuzzbench.
These are the builds that failed:
mbedtls_fuzz_dtlsclient
bloaty_fuzz_target
php_php-fuzz-parser
libpcap_fuzz_both
sqlite3_ossfuzz
openssl_x509
irssi_server-fuzz
zlib_zlib_uncompress_fuzzer
jsoncpp_jsoncpp_fuzzer
curl_curl_fuzzer_http
systemd_fuzz-link-parser
So I think the issue only affects oss-fuzz benchmarks, weird.
I also noticed afl++ failed on opnessl_x509
from fuzzbench.
Hi @jonathanmetzman. Thank you for your analysis of the issue. It seems to be very similar to this issue actions/checkout#23 and the root cause could be that in the builder script I check out a merge commit. I am testing it locally with a normal commit to see how it goes.
Cool thanks!
from fuzzbench.
A quick update. If I use the newest commit (just run git clone with no git checkout command), even though it is also a merge commit, the issue is gone. So the issue is definitely due to the git checkout command but I don't know why. It is strange!
from fuzzbench.
I'll look into this, there may be something weird in our oss-fuzz builds.
Of course, to add to the confusion, the PR I put up failed.
from fuzzbench.
I may have made some progress by doing this clone/checkout towards the top of the Dockerfile (still need to verify this and figure out the root cause of course) but there seems to be another error after that. I'll first fix #115 which I think prevents this from being caught in CI.
from fuzzbench.
As I said, ignoring "git checkout" helped me to fix the first issue (fatal: reference is not a tree). However, while compiling Peach which is a dependency of AFLSmart, it failed with the libpcap benchmark -- which is from Oss-Fuzz. The root cause is the C standard.
The following compilation command works for FuzzBench's libpng and libjpeg benchmarks but it failed for libpcap
CC=gcc-4.4 CXX=g++-4.4 CXXFLAGS="-std=c++0x" ./waf configure
CC=gcc-4.4 CXX=g++-4.4 CXXFLAGS="-std=c++0x" ./waf install
When I changed the commands to use "-std=gnu99" for both CXXFLAGS and CFLAGS, the configuration passed but the installation still failed.
I suspect the reason is that the libpcap benchmark, and possibly other benchmarks from Oss-Fuzz, uses a different base-builder image than the base-builder Dockerfile of FuzzBench and there is some conflicting settings/software versions between them.
Do you have any suggestions, @jonathanmetzman ?
Thanks
from fuzzbench.
This issue is fixed.
from fuzzbench.
Related Issues (20)
- Invalid OSS-Fuzz corpus download url HOT 1
- Error when running a local experiment on Fuzzbench HOT 1
- Error generating HTML report. HOT 3
- Only trigger experiments when a comment starts with `/gcbrun` HOT 3
- Upgrade to Python3.11
- Using outdated cached fuzzer repo.
- Merge mutiple experiments to synthesize merged reports
- Git Checkout might not work if there are multiple copies of a repo. HOT 1
- Bug: Race condition between "builder" and "builder-debug" image building
- PermissionDenied: 403 Permission 'secretmanager.versions.access' denied for resource 'secrets/service-account-key/versions/1' HOT 1
- run_experiment takes longer in GCP when generating report HOT 2
- benchmark openh264_decoder_fuzzer corpus URL outdated
- Experiment hanging without reports HOT 1
- Running several experiments at one time
- freetype_ftfuzzer oss-fuzz benchmark uses outdated commit
- llvm-cov show command report warning: <N> functions have mismatched data
- Allow setting `merge_with_nonprivate` in `run_experiment.py` command line params
- PyQt5 Issue HOT 2
- unknown flag: --gpus all when executing run_experiment.py
- No snapshot data when running local experiment HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fuzzbench.