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

Adding a new fuzzer #2069

Open
wants to merge 12 commits into
base: master
Choose a base branch
from
Open

Conversation

fEst1ck
Copy link

@fEst1ck fEst1ck commented Jan 23, 2025

Integrated a new fuzzer and added a experiment request.

Copy link

google-cla bot commented Jan 23, 2025

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@fEst1ck fEst1ck closed this Jan 23, 2025
@fEst1ck fEst1ck reopened this Jan 23, 2025
@fEst1ck fEst1ck closed this Jan 23, 2025
@fEst1ck fEst1ck reopened this Jan 23, 2025
@fEst1ck fEst1ck marked this pull request as ready for review January 23, 2025 02:19
@fEst1ck fEst1ck changed the title [NO MERGE] Integrate pathAFL fuzzer Adding a new fuzzer Jan 23, 2025
@fEst1ck
Copy link
Author

fEst1ck commented Jan 23, 2025

Hi @DonggeLiu, can you help me on running an experiment on a new fuzzer? First time using fuzz bench.

@DonggeLiu
Copy link
Contributor

Hi @fEst1ck, we are very happy to run experiments for you.

Some minor issues before I can launch the experiment:

  1. 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.

  2. In addition, could you please write your experiment request in this format?
    You can swap the --experiment-name and --fuzzers parameters with your values.
    I would really appreciate that : )

  3. BTW, you don't have to modify service/experiment-requests.yaml anymore. The two items above will suffice. Sorry that our documentation is a bit outdated.

Thanks!

@fEst1ck
Copy link
Author

fEst1ck commented Jan 23, 2025

Hi @fEst1ck, we are very happy to run experiments for you.

Some minor issues before I can launch the experiment:

  1. 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.
  2. In addition, could you please write your experiment request in this format?
    You can swap the --experiment-name and --fuzzers parameters with your values.
    I would really appreciate that : )
  3. BTW, you don't have to modify service/experiment-requests.yaml anymore. The two items above will suffice. Sorry that our documentation is a bit outdated.

Thanks!

Hi @DonggeLiu, thanks for the quick reply! I've made the suggested changes. The command to run the experiment should be

/gcbrun run_experiment.py -a --experiment-config /opt/fuzzbench/service/experiment-config.yaml --experiment-name 2025-01-22-path_afl --fuzzers aflplusplus path_afl

@DonggeLiu
Copy link
Contributor

Hi @DonggeLiu, thanks for the quick reply! I've made the suggested changes. The command to run the experiment should be

gcbrun run_experiment.py -a --experiment-config /opt/fuzzbench/service/experiment-config.yaml --experiment-name 2025-01-22-path_afl --fuzzers aflplusplus path_afl

Nice! Thanks for addressing this promptly. I will run the experiment below.
2 minor notes:

  1. No need to include a core fuzzer name (e.g., afl++) as FuzzBench will automatically merge its past experiment result into your experiment. This avoids repeatedly running the baseline fuzzers.
  2. Please avoid leaving comments when the experiment (fuzzbench) CI item is running : ) Otherwise our server may fail to grab the correct experiment request.

@DonggeLiu
Copy link
Contributor

/gcbrun run_experiment.py -a --experiment-config /opt/fuzzbench/service/experiment-config.yaml --experiment-name 2025-01-23-path_afl --fuzzers path_afl

@fEst1ck
Copy link
Author

fEst1ck commented Jan 23, 2025

I noticed the CI immediately failed because of linter warnings. I've fixed that now (checked with presubmit locally).
Do we need to restart the experiment?

/gcbrun run_experiment.py -a --experiment-config /opt/fuzzbench/service/experiment-config.yaml --experiment-name 2025-01-23-path_afl-1 --fuzzers path_afl

@DonggeLiu

@DonggeLiu
Copy link
Contributor

We don't mind minor linter warnings either because we no longer to have merge the fuzzer before running experiments : ) Please ignore the False-negative CI failures from Fuzzers+Benchmarks if you have tested building your fuzzer locally.

The experiment CI failed because the experiment name is invalid:

experiment.run_experiment.ValidationError: Experiment name "2025-01-23-path_afl" is invalid. Must match: "^[a-z0-9-]{0,30}$"

I will fix and re-run the command below.

@DonggeLiu
Copy link
Contributor

/gcbrun run_experiment.py -a --experiment-config /opt/fuzzbench/service/experiment-config.yaml --experiment-name 2025-01-23-path-afl --fuzzers path_afl

@DonggeLiu
Copy link
Contributor

Experiment 2025-01-23-path-afl data and results will be available later at:
The experiment data.
The experiment report.
The experiment report(experimental).

@fEst1ck
Copy link
Author

fEst1ck commented Jan 24, 2025

The result is still not available after 24 hours. Wonder if this is normal? @DonggeLiu

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