fuzz: document faster throughput configuration #22573

pull agroce wants to merge 1 commits into bitcoin:master from agroce:patch-1 changing 1 files +4 −0
  1. agroce commented at 8:05 PM on July 28, 2021: contributor

    This is a small change to the fuzzing doc that I think might help more people improve the corpus coverage, which I think is low partly just due to lack of long, low-overhead, runs, in addition to the need to apply a more diverse set of fuzzers and coverage notions.

  2. Document faster throughput configuration 8a4f0fcd3f
  3. agroce renamed this:
    Document faster throughput configuration
    fuzz: document faster throughput configuration
    on Jul 28, 2021
  4. DrahtBot added the label Docs on Jul 28, 2021
  5. MarcoFalke commented at 6:45 AM on July 29, 2021: member

    Concept ACK. I do the same. On my servers I run without sanitizers to find logic bugs and with sanitizers to find memory bugs.

  6. practicalswift commented at 9:00 AM on July 29, 2021: contributor

    I do the same too :)

    ACK 8a4f0fcd3fc1a35c1482975114555b0fed75a1c0

    Thanks for improving the fuzzing documentation!

  7. tryphe commented at 3:16 AM on July 30, 2021: contributor

    ACK 8a4f0fcd3fc1a35c1482975114555b0fed75a1c0

  8. in doc/fuzzing.md:88 in 8a4f0fcd3f
      82 | @@ -83,6 +83,10 @@ INFO: seed corpus: files: 991 min: 1b max: 1858b total: 288291b rss: 150Mb
      83 |  …
      84 |  ```
      85 |  
      86 | +## Run without sanitizers for increased throughput
      87 | +
      88 | +Fuzzing on a harness compiled with `--with-sanitizers=address,fuzzer,undefined` is good for finding bugs. However, the very slow execution even under libFuzzer will limit the ability to find new coverage. A good approach is to perform occasional long runs without the additional bug-detectors (configure `--with-sanitizers=fuzzer`) and then merge new inputs into a corpus as described in the qa-assets repo (https://github.com/bitcoin-core/qa-assets/blob/main/.github/PULL_REQUEST_TEMPLATE.md).  Patience is useful; even with improved throughput, libFuzzer may need days and 10s of millions of executions to reach deep/hard targets.
    


    jonatack commented at 2:11 PM on July 30, 2021:

    nit, s/10s/tens/

    Fuzzing on a harness compiled with `--with-sanitizers=address,fuzzer,undefined` is good for finding bugs. However, the very slow execution even under libFuzzer will limit the ability to find new coverage. A good approach is to perform occasional long runs without the additional bug-detectors (configure `--with-sanitizers=fuzzer`) and then merge new inputs into a corpus as described in the qa-assets repo (https://github.com/bitcoin-core/qa-assets/blob/main/.github/PULL_REQUEST_TEMPLATE.md).  Patience is useful; even with improved throughput, libFuzzer may need days and tens of millions of executions to reach deep/hard targets.
    

    also could line-break, e.g.

    Fuzzing on a harness compiled with `--with-sanitizers=address,fuzzer,undefined`
    is good for finding bugs. However, the very slow execution even under libFuzzer
    will limit the ability to find new coverage. A good approach is to perform
    occasional long runs without the additional bug-detectors (configure
    `--with-sanitizers=fuzzer`) and then merge new inputs into a corpus as described
    in the qa-assets repo (https://github.com/bitcoin-core/qa-assets/blob/main/.github/PULL_REQUEST_TEMPLATE.md).
    Patience is useful; even with improved throughput, libFuzzer may need days and
    tens of millions of executions to reach deep/hard targets.
    
  9. jonatack commented at 2:12 PM on July 30, 2021: member

    ACK, useful addition. Feel free to ignore the comments that follow.

  10. MarcoFalke merged this on Jul 31, 2021
  11. MarcoFalke closed this on Jul 31, 2021

  12. sidhujag referenced this in commit 35e4d95459 on Aug 1, 2021
  13. DrahtBot locked this on Aug 16, 2022

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-22 18:14 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me