Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AFLChurn++ Experiment targeting bug-based benchmarks #2022

Closed
wants to merge 8 commits into from

Conversation

Dammo3
Copy link

@Dammo3 Dammo3 commented Aug 12, 2024

A follow on from #2012

Testing AFLChurn++ on this old branch with bug-based benchmarks

@Dammo3
Copy link
Author

Dammo3 commented Aug 12, 2024

@DonggeLiu you mentioned that there are 15 bug-based benchmarks. As there are more than 15 benchmarks, do you know which ones they are?

@Dammo3
Copy link
Author

Dammo3 commented Aug 12, 2024

/gcbrun run_experiment.py -a --experiment-config /opt/fuzzbench/service/experiment-config.yaml --experiment-name 2024-08-12-aflchurnplusplus --fuzzers afl aflplusplus aflchurnplusplus

@DonggeLiu
Copy link
Contributor

@DonggeLiu you mentioned that there are 15 bug-based benchmarks. As there are more than 15 benchmarks, do you know which ones they are?

It's on this tag: https://github.com/google/fuzzbench/tree/SBFT'23.
Bug-based benchmark directories end with the commit id, and its yaml file has type: bug

@DonggeLiu
Copy link
Contributor

gcbrun run_experiment.py -a --experiment-config /opt/fuzzbench/service/experiment-config.yaml --experiment-name 2024-08-12-aflchurnplusplus --fuzzers afl aflplusplus aflchurnplusplus

Do you want to run this on the bug-based or coverage based?

@Dammo3
Copy link
Author

Dammo3 commented Aug 12, 2024

gcbrun run_experiment.py -a --experiment-config /opt/fuzzbench/service/experiment-config.yaml --experiment-name 2024-08-12-aflchurnplusplus --fuzzers afl aflplusplus aflchurnplusplus

Do you want to run this on the bug-based or coverage based?

On the bug based, thanks!

@DonggeLiu
Copy link
Contributor

On the bug based, thanks!

Then would you please rebase this PR on the following tag, which has the bug-based benchmarks? The current base branch (master) does not have those benchmarks.
Thanks.

It's on this tag: https://github.com/google/fuzzbench/tree/SBFT'23. Bug-based benchmark directories end with the commit id, and its yaml file has type: bug

@Dammo3
Copy link
Author

Dammo3 commented Aug 13, 2024

Then would you please rebase this PR on the following tag

I did rebase my fork of fuzzbench on that tag, but I'm unsure how to target a tag in a PR, I'm only able to target branches (not tags)

image

Is there something else I should be doing?

@DonggeLiu DonggeLiu changed the base branch from master to sbft23 August 13, 2024 05:20
@DonggeLiu
Copy link
Contributor

Running a test exp below.

@DonggeLiu
Copy link
Contributor

Hmm, I will need an extra config to allow PR experiments when the base is not master

@DonggeLiu
Copy link
Contributor

/gcbrun run_experiment.py -a --experiment-config /opt/fuzzbench/service/experiment-config.yaml --experiment-name 2024-08-13-aflchurnplusplus --fuzzers aflchurnplusplus --benchmarks arrow_arrow-ipc-stream-fuzz_1a34a0

@DonggeLiu
Copy link
Contributor

Experiment 2024-08-13-aflchurnplusplus data and results will be available later at:
The experiment data.
The experiment report.
The experiment report(experimental).

@Dammo3
Copy link
Author

Dammo3 commented Aug 14, 2024

Once the test experiment is done (and if all looks well) can you please run the following:

/gcbrun run_experiment.py -a --experiment-config /opt/fuzzbench/service/experiment-config.yaml --experiment-name 2024-08-14-aflchurnplusplus --fuzzers afl aflplusplus aflchurnplusplus --benchmarks arrow_arrow-ipc-stream-fuzz_1a34a0 aspell_aspell_fuzzer_e8eb74 assimp_assimp_fuzzer_4d451f bloaty_fuzz_target_52948c ffmpeg_ffmpeg_demuxer_fuzzer_7adeef file_magic_fuzzer_2d5f85 grok_grk_decompress_fuzzer_9cd001 harfbuzz_hb-shape-fuzzer_17863b lcms_cms_transform_all_fuzzer_97d37d libaom_av1_dec_fuzzer_6e1848 libpcap_fuzz_filter_98b0a2 libxml2_xml_e85b9b mbedtls_fuzz_dtlsclient_7c6b0e php_php-fuzz-parser_0dbedb systemd_fuzz-network-parser_288baf

That includes all the bug benchmarks. I would like to run the test on AFL and AFL++ as well, so I have data to make direct comparisons

@DonggeLiu
Copy link
Contributor

The report looks good so far, I will start the new one now to minimize our waiting time.

@DonggeLiu
Copy link
Contributor

But since you have modified afl++, could you please set this to false so that it won't merge the old result into your report?

merge_with_nonprivate: true

@DonggeLiu
Copy link
Contributor

/gcbrun run_experiment.py -a --experiment-config /opt/fuzzbench/service/experiment-config.yaml --experiment-name 2024-08-14-aflchurnplusplus --fuzzers afl aflplusplus aflchurnplusplus --benchmarks arrow_arrow-ipc-stream-fuzz_1a34a0 aspell_aspell_fuzzer_e8eb74 assimp_assimp_fuzzer_4d451f bloaty_fuzz_target_52948c ffmpeg_ffmpeg_demuxer_fuzzer_7adeef file_magic_fuzzer_2d5f85 grok_grk_decompress_fuzzer_9cd001 harfbuzz_hb-shape-fuzzer_17863b lcms_cms_transform_all_fuzzer_97d37d libaom_av1_dec_fuzzer_6e1848 libpcap_fuzz_filter_98b0a2 libxml2_xml_e85b9b mbedtls_fuzz_dtlsclient_7c6b0e php_php-fuzz-parser_0dbedb systemd_fuzz-network-parser_288baf

@DonggeLiu
Copy link
Contributor

Experiment 2024-08-14-aflchurnplusplus data and results will be available later at:
The experiment data.
The experiment report.
The experiment report(experimental).

@Dammo3
Copy link
Author

Dammo3 commented Aug 17, 2024

As AFLChurn++ is a regression fuzzer, I would also like to be able to compare with results of fuzzing on the bug-introducing commit. I have added new benchmarks for benchmarks previously tested but changed the commit they are using. If the CIs pass, can you please run this for me:

/gcbrun run_experiment.py -a --experiment-config /opt/fuzzbench/service/experiment-config.yaml --experiment-name 2024-08-17-aflchurnplusplus --fuzzers afl aflplusplus aflchurnplusplus --benchmarks arrow_arrow-ipc-stream-fuzz_eee13b aspell_aspell_fuzzer_aed7cd assimp_assimp_fuzzer_bdee65 bloaty_fuzz_target_f01ea5 ffmpeg_ffmpeg_demuxer_fuzzer_fe85af grok_grk_decompress_fuzzer_d9ff920 lcms_cms_transform_all_fuzzer_a9796f libpcap_fuzz_filter_bc594f

Thank you!

@DonggeLiu
Copy link
Contributor

/gcbrun run_experiment.py -a --experiment-config /opt/fuzzbench/service/experiment-config.yaml --experiment-name 2024-08-17-aflchurnplusplus --fuzzers afl aflplusplus aflchurnplusplus --benchmarks arrow_arrow-ipc-stream-fuzz_eee13b aspell_aspell_fuzzer_aed7cd assimp_assimp_fuzzer_bdee65 bloaty_fuzz_target_f01ea5 ffmpeg_ffmpeg_demuxer_fuzzer_fe85af grok_grk_decompress_fuzzer_d9ff920 lcms_cms_transform_all_fuzzer_a9796f libpcap_fuzz_filter_bc594f

@DonggeLiu
Copy link
Contributor

Experiment 2024-08-17-aflchurnplusplus data and results will be available later at:
The experiment data.
The experiment report.
The experiment report(experimental).

@Dammo3
Copy link
Author

Dammo3 commented Aug 18, 2024

@DonggeLiu the in progress experiment report doesn't appear to be working, is there a problem with the experiment?

@DonggeLiu
Copy link
Contributor

@DonggeLiu the in progress experiment report doesn't appear to be working, is there a problem with the experiment?

Yes, there appears to be a quota error, based on the base-image build log.
I reckon this is flaky, let me re-try.

@DonggeLiu
Copy link
Contributor

/gcbrun run_experiment.py -a --experiment-config /opt/fuzzbench/service/experiment-config.yaml --experiment-name 2024-08-18-aflchurnplusplus --fuzzers afl aflplusplus aflchurnplusplus --benchmarks arrow_arrow-ipc-stream-fuzz_eee13b aspell_aspell_fuzzer_aed7cd assimp_assimp_fuzzer_bdee65 bloaty_fuzz_target_f01ea5 ffmpeg_ffmpeg_demuxer_fuzzer_fe85af grok_grk_decompress_fuzzer_d9ff920 lcms_cms_transform_all_fuzzer_a9796f libpcap_fuzz_filter_bc594f

@DonggeLiu
Copy link
Contributor

Experiment 2024-08-18-aflchurnplusplus data and results will be available later at:
The experiment data.
The experiment report.
The experiment report(experimental).

@Dammo3
Copy link
Author

Dammo3 commented Aug 31, 2024

Hey, just a couple changes to benchmarks so that they're valid for my analysis. Can you please run this for me (afl has been intentionally excluded):

/gcbrun run_experiment.py -a --experiment-config /opt/fuzzbench/service/experiment-config.yaml --experiment-name 2024-08-31-aflchurnplusplus --fuzzers aflplusplus aflchurnplusplus --benchmarks arrow_arrow-ipc-stream-fuzz_1a34a0 arrow_arrow-ipc-stream-fuzz_eee13b libaom_av1_dec_fuzzer_5a4757 libaom_av1_dec_fuzzer_cbbc5c systemd_fuzz-network-parser_46c3b1 systemd_fuzz-network-parser_82d7a1

@DonggeLiu
Copy link
Contributor

/gcbrun run_experiment.py -a --experiment-config /opt/fuzzbench/service/experiment-config.yaml --experiment-name 2024-08-31-aflchurnplusplus --fuzzers aflplusplus aflchurnplusplus --benchmarks arrow_arrow-ipc-stream-fuzz_1a34a0 arrow_arrow-ipc-stream-fuzz_eee13b libaom_av1_dec_fuzzer_5a4757 libaom_av1_dec_fuzzer_cbbc5c systemd_fuzz-network-parser_46c3b1 systemd_fuzz-network-parser_82d7a1

@Dammo3 Dammo3 closed this Oct 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants