google / clusterfuzzlite

ClusterFuzzLite - Simple continuous fuzzing that runs in CI.
https://google.github.io/clusterfuzzlite
Apache License 2.0
456 stars 39 forks source link

Timeout in pruning job #89

Open catenacyber opened 2 years ago

catenacyber commented 2 years ago

Getting logs like

2022-02-15 09:19:54,828 - root - INFO - Done downloading corpus. Contains 5964 elements.
Traceback (most recent call last):
  File "/opt/oss-fuzz/infra/cifuzz/cifuzz_combined_entrypoint.py", line 40, in <module>
    sys.exit(main())
  File "/opt/oss-fuzz/infra/cifuzz/cifuzz_combined_entrypoint.py", line 36, in main
    return run_fuzzers_entrypoint.run_fuzzers_entrypoint()
  File "/opt/oss-fuzz/infra/cifuzz/run_fuzzers_entrypoint.py", line 61, in run_fuzzers_entrypoint
    result = run_fuzzers.run_fuzzers(config)
  File "/opt/oss-fuzz/infra/cifuzz/run_fuzzers.py", line 302, in run_fuzzers
    if not fuzz_target_runner.run_fuzz_targets():
  File "/opt/oss-fuzz/infra/cifuzz/run_fuzzers.py", line 130, in run_fuzz_targets
    result = self.run_fuzz_target(target)
  File "/opt/oss-fuzz/infra/cifuzz/run_fuzzers.py", line 161, in run_fuzz_target
    result = fuzz_target_obj.prune()
  File "/opt/oss-fuzz/infra/cifuzz/fuzz_target.py", line 140, in prune
    result = engine_impl.minimize_corpus(self.target_path, [],
  File "/usr/local/lib/python3.8/dist-packages/clusterfuzz/_internal/bot/fuzzers/libFuzzer/engine.py", line 507, in minimize_corpus
    raise TimeoutError('Merging new testcases timed out\n' + result.output)
TimeoutError: Merging new testcases timed out
INFO: Running with entropic power schedule (0xFF, 100).

Increasing FUZZ_SECONDS does not seem to be enough to fix this... But I see fuzz_seconds // fuzzers_left_to_run so maybe this fuzzer is a bit long but it should have more time than the others...

oliverchang commented 2 years ago

The duration should come from FUZZ_SECONDS // fuzzers_left_to_run as you mention. How long should get allocated according to your FUZZ_SECONDS and how long does it take locally to run?

catenacyber commented 2 years ago

Well, I am not sure which fuzz target times out in the first place.

I get

> time ./src/fuzz_predefpcap_aware -merge=1 newdir/ suricata-cfl/corpus/fuzz_predefpcap_aware/

...

MERGE-OUTER: succesfull in 1 attempt(s)
MERGE-OUTER: the control file has 1107636 bytes
MERGE-OUTER: consumed 0Mb (66Mb rss) to parse the control file
MERGE-OUTER: 2855 new files with 47996 new features added; 11297 new coverage edges

real    1m25,703s
user    1m14,068s
sys 0m7,640s

I guess the log should tell me the command which timed out and the timeout it used