Open kjain14 opened 7 months ago
Hi, @kjain14, long time no see! Thanks for updating the experiment request file.
We have changed our way of running experiments, hope this suits you:
Would you mind making a trivial modification to service/gcbrun_experiment.py? This will allow me to launch experiments in this PR before merging. Here is an example to add a dummy comment, thanks!
Could you please write your experiment request in this format?
You can swap the --experiment-name
and --fuzzers
parameters with your values.
For example, in your case, the request command this time is
/gcbrun run_experiment.py -a --experiment-config /opt/fuzzbench/service/experiment-config.yaml --experiment-name 2024-04-23-aflpp-muttfuzz --fuzzers aflplusplus_muttfuzz
You no longer have to edit service/experiment-requests.yaml
in the future : )
/gcbrun run_experiment.py -a --experiment-config /opt/fuzzbench/service/experiment-config.yaml --experiment-name 2024-04-23-aflpp-muttfuzz --fuzzers aflplusplus_muttfuzz
Experiment 2024-04-23-aflpp-muttfuzz
data and results will be available later at:
The experiment data.
The experiment report.
We accidentally only ran muttfuzz, we also want to compare against aflplusplus
Hi Dongge,
I added another comment for another experiment. Let me know if there is anything else I need to do (mainly we need to compare against aflplusplus).
Thanks, Kush
On Mon, Apr 22, 2024, 9:14 PM Dongge Liu @.***> wrote:
Experiment 2024-04-23-aflpp-muttfuzz data and results will be available later at: The experiment data https://storage.googleapis.com/fuzzbench-data/index.html?prefix=2024-04-23-aflpp-muttfuzz/ . The experiment report https://storage.googleapis.com/www.fuzzbench.com/reports/2024-04-23-aflpp-muttfuzz/index.html .
— Reply to this email directly, view it on GitHub https://github.com/google/fuzzbench/pull/1967#issuecomment-2071218412, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACEOTTIU7PEALLX5OGJ2VZTY6WYYNAVCNFSM6AAAAABGFNJK6OVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANZRGIYTQNBRGI . You are receiving this because you were mentioned.Message ID: @.***>
/gcbrun run_experiment.py -a --experiment-config /opt/fuzzbench/service/experiment-config.yaml --experiment-name 2024-04-23-full-muttfuzz --fuzzers aflplusplus_muttfuzz aflplusplus aflsmart_muttfuzz aflsmart libfuzzer libfuzzer_muttfuzz libafl libafl_muttfuzz honggfuzz honggfuzz_muttfuzz
Thanks for providing us with the experiment request command, @kjain14!
I noticed that the experiment requires 10 fuzzers, which may overwhelm FuzzBench due to its current bottleneck in the measurement stage. Empirically, it's safer to keep the number under 8. Meanwhile, this config enables FuzzBench to merge fuzzers' results from past experiments into your report when your experiment completes so that we don't have to re-run them in every new experiment. For example, your previous experiment report should have data of other fuzzers (including afl++) once it completes. Here is another example command and its report. The report merges core fuzzers' results from past experiments even though they were not explicitly mentioned in the command.
I will revise the new command below, please let me know if they work for you.
Thanks! Yes merging them should work!
/gcbrun run_experiment.py -a --experiment-config /opt/fuzzbench/service/experiment-config.yaml --experiment-name 2024-04-23-full-muttfuzz --fuzzers aflplusplus_muttfuzz aflsmart_muttfuzz libfuzzer_muttfuzz libafl_muttfuzz honggfuzz_muttfuzz
The request failed because the fuzzer name is libafl_muttfuzz
but its directory name is libafll_muttfuzz
(with two l
s in afll
), is this a typo?
Would you like to change it or it's ok to use that name?
Apologies for the typo, this should be fixed now
/gcbrun run_experiment.py -a --experiment-config /opt/fuzzbench/service/experiment-config.yaml --experiment-name 2024-04-24-full-muttfuzz --fuzzers aflplusplus_muttfuzz aflsmart_muttfuzz libfuzzer_muttfuzz libafl_muttfuzz honggfuzz_muttfuzz
Experiment 2024-04-24-full-muttfuzz
data and results will be available later at:
The experiment data.
The experiment report.
The experiment report(experimental).
/gcbrun run_experiment.py -a --experiment-config /opt/fuzzbench/service/experiment-config.yaml --experiment-name 2024-05-02-full-muttfuzz --fuzzers aflplusplus_muttfuzz aflsmart_muttfuzz libfuzzer_muttfuzz libafl_muttfuzz honggfuzz_muttfuzz
Hi @kjain14, would you mind if I start this experiment next week?
We were trying to investigate this failure and it would be great if we could avoid starting another large experiment at the meantime.
Thanks!
Sure, we can start it next week
/gcbrun run_experiment.py -a --experiment-config /opt/fuzzbench/service/experiment-config.yaml --experiment-name 2024-05-06-full-muttfuzz --fuzzers aflplusplus_muttfuzz aflsmart_muttfuzz libfuzzer_muttfuzz libafl_muttfuzz honggfuzz_muttfuzz
Experiment 2024-05-06-full-muttfuzz
data and results will be available later at:
The experiment data.
The experiment report.
The experiment report(experimental).
@kjain14 fyi I saw your experiments. if you did not integrate muttfuzz on the same commit as aflplusplus that you fuzzbench is using, you will be comparing apples with oranges because there were significant advances. same if your muttfuzz afl++ commit is newer than the one on fuzzbench. I didnt check your setup. just in case: better add an aflplusplus variant that has the exact same commit id you have based your muttfuzz integration on. comparing against honggfuzz looks good, so I would expect it should also improve afl++.
Adding MuttFuzz (a binary fuzzing alternative to our "First, Fuzz the Mutants" paper). This will likely integrate better with fuzzbench and thus work on experiments, as we are mutating binaries rather than source code.