fuzzware-fuzzer / fuzzware

Fuzzware's main repository. Start here to install.
Apache License 2.0
302 stars 51 forks source link

Fuzzware sometimes stops generating traces #12

Open CounterCycle opened 1 year ago

CounterCycle commented 1 year ago

I've noticed occasionally after running the pipeline, that genstats will cause a large number of traces to be generated. They all seem to correspond to the final main folder. The output block coverage from genstats is also considerably higher than what was written in the console at the time the pipeline exited.

In my tests, this seems to occur about 50% of the time in the Reflow Oven binary (24 hours, AFL++ mode)

Given that the pipeline appears unaware of these reached blocks, could models be missing for MMIO access in these blocks?

Thanks, CounterCycle

Scepticz commented 1 year ago

The traces which are responsible for Model generation are MMIO access context sets. In case these don't get generated, the related MMIO models would not be generated. One reason I could think of for the traces not to get generated could be missed inotify triggers.

An approach to resolving these could be periodic scans of the current AFL queue directories in the pipeline to make sure traces are generated for all inputs. This basically is what genstats / gentraces are doing on a one-off basis.

Tobi