Skip to content

Upgrade base images, benchmark images, and Python. - #1526

Merged
DonggeLiu merged 54 commits into
masterfrom
upgrade-base-image
Dec 5, 2022
Merged

DonggeLiu merged 54 commits into
masterfrom
upgrade-base-image

Conversation

@DonggeLiu

Copy link
Copy Markdown
Contributor

I guess this branch has what we need? Not sure why it does not has a PR though.
I make it up-to-date with the master branch so that we can discuss here.

@DonggeLiu

DonggeLiu commented Oct 14, 2022 •

Copy link
Copy Markdown
Contributor Author

A quick update:
I am working on merging modifications from other PR to here.
Currently, I have a docker/base-image/Dockerfile that is based on focal and has python3.10.8 (the latest version).
I also updated the pip packages in requirements.txt to the latest version and managed to install them successfully in docker/base-image/Dockerfile.
I will push later.

@DonggeLiu

DonggeLiu commented Oct 14, 2022 •

Copy link
Copy Markdown
Contributor Author

TODOs in this PR:

  1. Check if there is any conflict with the new version of Ubuntu, python, and pip packages (like Update ubuntu to jammy and python to 3.10 #1521).
  2. Check if this PR missed anything in Upgrade to python3.10 #1493.
  3. Use a newer OSS-Fuzz docker image (like upgrade images #1441).
  4. Final check for conflicts.

@DonggeLiu

DonggeLiu commented Oct 14, 2022 •

Copy link
Copy Markdown
Contributor Author

TODOs in future PRs:

  1. Fix new lint/formatter issues, as we are using a newer version of pylint now. WIP at Fix lint #1529.
  2. Update documentation, done in Update documentation #1533.

@jonathanmetzman

Copy link
Copy Markdown
Contributor

btw you can just checkout https://github.com/google/fuzzbench/pull/1441/files locally and start pushing to that PR. I don't think we need another one.

Comment thread docker/image_types.yaml
- 'parent_image=gcr.io/fuzzbench/builders/coverage/{benchmark}-intermediate'
depends_on:
- 'coverage-{benchmark}-builder-intermediate'
- 'base-image'

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the reason for this removal?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the reason for this removal?

I do not know, it comes with this branch of yours : )

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would you prefer me to revert this?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah lets rever this

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is causing the CI failure as we discussed

@DonggeLiu

Copy link
Copy Markdown
Contributor Author

CI failed because we've updated pylint.

@DonggeLiu

DonggeLiu commented Oct 18, 2022 •

Copy link
Copy Markdown
Contributor Author

I've fixed all meaningful lint errors in #1529, which involves more than 60+ files.
There are many lint errors I consider not worth fixing and plan to let pylint ignore them, could you please take a look over there and let me know if you'd like me to fix them?

Once that PR is ready, I will merge its branch here.

@DonggeLiu DonggeLiu mentioned this pull request Oct 19, 2022
@DonggeLiu DonggeLiu mentioned this pull request Oct 20, 2022
@DonggeLiu DonggeLiu changed the title Upgrade base image to 20.04 Upgrade base images, benchmark images, and Python. Oct 21, 2022
@DonggeLiu

Copy link
Copy Markdown
Contributor Author

It is OK to let presubmit fail for now: I will bring in the PR that fixes it at the end.

Some projects use `-Werror` to turn all warnings into errors.
This affects `Centipede` as we do not separate build and linking flags
as it expects, which leads to `unused-command-line-argument` warnings.
This PR disables turning that specific warning into errors and keeps the
rest the same.

See [the same PR from
OSS-Fuzz](google/oss-fuzz#9030) for more info
and [the error in this PR](google/oss-fuzz#8990)
for its use case.
This PR fixes new lint errors from the latest `pylint`, which is
required as #1526 upgrades `Python` to `3.10`.
I reckon I have fixed all meaningful errors in the *`FuzzBench`
framework*, not sure if the rest is worth fixing or could be ignored.
@DonggeLiu

Copy link
Copy Markdown
Contributor Author

@jonathanmetzman : Please let me know if Fix test_build_all_measurers makes sense.
I was unsure if I completely understood the previous code (which failed the unittest), so I was trying to fix it based on its function description.

@DonggeLiu

DonggeLiu commented Nov 25, 2022 •

Copy link
Copy Markdown
Contributor Author

Not sure what is the best way to fix validate_fuzzers_and_benchmarks in presubmit:
I guess we don't want to delete the temporary fuzzers and variations now, but also do not want to always check them in CIs.

That is also the only thing left to pass all CI tests.

@DonggeLiu

Copy link
Copy Markdown
Contributor Author

Not sure what is the best way to fix validate_fuzzers_and_benchmarks in presubmit: I guess we don't want to delete the temporary fuzzers and variations now, but also do not want to always check them in CIs.

That is also the only thing left to pass all CI tests.

@jonathanmetzman : A gentle ping on this : )
Would now be a good time to delete the temporary fuzzers or remove them from CIs, so that we can merge this PR to master?
Also, I noticed that there are experiments running for weeks (r-2022-11-11-um-prioritize-2209607) or months (r-2022-10-13-um-final-3-2201231), is that intended?
Thanks!

@DonggeLiu

DonggeLiu commented Dec 2, 2022 •

Copy link
Copy Markdown
Contributor Author

@jonathanmetzman:
Here is the full list of current fuzzers, could you please also tick the ones that you'd like to keep? Thanks!
I will delete the rest.

  • afl
  • aflfast
  • aflplusplus
  • aflsmart
  • centipede
  • eclipser
  • fairfuzz
  • honggfuzz
  • libafl
  • libfuzzer
  • mopt
  • klee # To Be Fixed.
  • symcc_aflplusplus # To Be Fixed.

  • afl_2_52_b
  • aflcc
  • afl_collision_free
  • afl_double_timeout
  • afl_maxmap
  • afl_no_favfactor
  • afl_no_favored
  • afl_no_trim
  • aflplusplus_classic
  • aflplusplus_cmplog
  • aflplusplus_cmplog_1585
  • aflplusplus_cmplog_1587
  • aflplusplus_cmplog_r
  • aflplusplus_dict2file
  • aflplusplus_frida
  • aflplusplus_muttfuzz
  • aflplusplus_optimal
  • aflplusplus_pcguard
  • aflplusplus_qemu
  • aflplusplus_qemu_tracepc
  • aflplusplus_tracepc
  • aflplusplus_um_parallel
  • aflplusplus_um_prioritize
  • aflplusplus_um_prioritize_75
  • aflplusplus_um_random
  • aflplusplus_um_random_3
  • aflplusplus_um_random_6
  • aflplusplus_um_random_75
  • aflplusplus_zafl
  • aflpp_random_default
  • aflpp_random_no_favs
  • aflpp_random_wrs
  • aflpp_random_wrs_rf
  • aflpp_random_wrs_rf_rp
  • aflpp_random_wrs_rp
  • afl_qemu
  • afl_random_favored
  • afl_scheduling_lifo
  • afl_scheduling_random
  • afl_score_max
  • afl_score_min
  • afl_score_no_novel_prioritization
  • afl_score_random
  • afl_splicing_mutation
  • afl_two_instances
  • afl_um_parallel
  • afl_um_prioritize
  • afl_um_random
  • afl_virginmap
  • centipede_function_filter
  • coverage
  • eclipser_aflplusplus
  • eclipser_um_parallel
  • eclipser_um_prioritize
  • eclipser_um_prioritize_75
  • eclipser_um_random
  • eclipser_um_random_75
  • entropic
  • entropic_execute_final
  • fafuzz
  • fuzzolic_aflplusplus_fuzzy
  • fuzzolic_aflplusplus_z3
  • glibfuzzer
  • gramatron
  • grimoire
  • honggfuzz_qemu
  • honggfuzz_um_parallel
  • honggfuzz_um_prioritize
  • honggfuzz_um_prioritize_75
  • honggfuzz_um_random
  • honggfuzz_um_random_75
  • introspector_driven_focus
  • lafintel
  • libafl_text
  • libfuzzer_dataflow
  • libfuzzer_dataflow_load
  • libfuzzer_dataflow_pre
  • libfuzzer_dataflow_store
  • libfuzzer_exeute_final
  • libfuzzer_focus_idx0
  • libfuzzer_focus_idx1
  • libfuzzer_focus_idx2
  • libfuzzer_focus_idx3
  • libfuzzer_focus_idx4
  • libfuzzer_focus_idx5
  • libfuzzer_focus_idx6
  • libfuzzer_focus_idx7
  • libfuzzer_focus_idx8
  • libfuzzer_fork_parallel
  • libfuzzer_um_parallel
  • libfuzzer_um_prioritize
  • libfuzzer_um_prioritize_75
  • libfuzzer_um_random
  • libfuzzer_um_random_75
  • manul
  • nautilus
  • neuzz
  • pythia_bb
  • pythia_effect_bb
  • symcc_afl
  • symcc_aflplusplus_single
  • symcc_afl_single
  • symqemu_aflplusplus
  • token_level
  • tortoisefuzz
  • weizz_qemu
  • wingfuzz

@jonathanmetzman

jonathanmetzman commented Dec 2, 2022 •

Copy link
Copy Markdown
Contributor

@jonathanmetzman: Here is the full list of current fuzzers, could you please also tick the ones that you'd like to keep? Thanks! I will delete the rest.

We need to keep coverage for sure.
Let's do the upgrade and then delete in a subsequent PR (OK if CI fails)
Explain why we need to delete some of these please. Is it because they need to be fixed to pass linting?
Anyway, I've marked some I think we should keep

@DonggeLiu

DonggeLiu commented Dec 2, 2022 •

Copy link
Copy Markdown
Contributor Author

We need to keep coverage for sure. Let's do the upgrade and then delete in a subsequent PR (OK if CI fails)

Sure! I will merge this on Monday, then.

Explain why we need to delete some of these please. Is it because they need to be fixed to pass linting?

Yep, it is mainly to avoid the validate_fuzzers_and_benchmarks error from presubmit.

@DonggeLiu
DonggeLiu merged commit a6a5a9a into master Dec 5, 2022
@DonggeLiu
DonggeLiu deleted the upgrade-base-image branch December 5, 2022 00:27
@DonggeLiu DonggeLiu mentioned this pull request Aug 3, 2024
SPINO-11 pushed a commit to SPINO-11/green_fuzzing_evaluation that referenced this pull request Aug 9, 2025
FuzzBench now works on Ubuntu 20.04 and Python 3.10.

Co-authored-by: Jonathan Metzman <metzman@chromium.org>
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