-
-
Notifications
You must be signed in to change notification settings - Fork 323
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
introduce multicore load initial corpus #1905
Conversation
Thank you! Looks like very good already! However, we need to consider restarts during testcase evaluation time. You probably want to store all inputs to be processed in a Vec in the state for the current core, and if the vec already exists (after restart) skip over this initial loading, and continue processing the vec (?) |
@domenukk Thanks, I will update it. |
in case of crashes or timeouts during corpus loading.
It follows AFL++'s (optional) concept of ignoring timeouts and crashes in the initial seed corpus, since that stuff is already stored. |
Run cd libafl && cargo test --no-default-features
Compiling libafl_bolts v0.11.2 (/home/runner/work/LibAFL/LibAFL/libafl_bolts)
Compiling libafl v0.11.2 (/home/runner/work/LibAFL/LibAFL/libafl)
error[E0560]: struct `StdState<I, C, R, SC>` has no field named `multicore_inputs_processed`
--> libafl/src/state/mod.rs:10[8](https://github.com/AFLplusplus/LibAFL/actions/runs/8157117940/job/22296046890?pr=1905#step:14:9)3:13
|
[10](https://github.com/AFLplusplus/LibAFL/actions/runs/8157117940/job/22296046890?pr=1905#step:14:11)83 | multicore_inputs_processed: None,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ `StdState<I, C, R, SC>` does not have this field
|
= note: all struct fields are already assigned Looks like |
@domenukk should be good now |
error: item in documentation is missing backticks
--> libafl/src/state/mod.rs:332:27
|
332 | /// relevant only for load_multicore_inputs
Last tiny things in docs, else looks good to go! :) |
One last |
@domenukk not sure why one of the runs is failing.. |
the error is due to my previous changes..
can you change this to batched_timeout as suggested? |
i'll fix it |
Thanks! |
implements and closes #1746
I ended up implementing a multicore version unlike what I wrote in the issue. It traverses the corpus entries twice (at most), which is inefficient but is probably the simplest implementation I could think of.
to test: