-
-
Notifications
You must be signed in to change notification settings - Fork 324
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
Don't restart in deterministic stages. Don't restart where there's no restart safety. Make stage names unique #2331
Conversation
In order to make retryrestarting helper or exec counting helper work it is necessary that every created instance of stage have unique names to begin with. |
Reasons for choosing the restarting helper
|
libafl/src/stages/mod.rs
Outdated
} | ||
} | ||
|
||
/// Progress which permits a fixed amount of resumes per round of fuzzing. If this amount is ever | ||
/// exceeded, the input will no longer be executed by this stage. | ||
#[derive(Clone, Deserialize, Serialize, Debug)] | ||
pub struct RetryRestartHelper { | ||
pub struct RestartHelper { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We have other RestartHelpers like the ExecutionCountRestartHelper
, so this name is underspecified, RetryRestartHelper::no_retry
is fine
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Or RetryRestartHelper::none()
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
how about StdRestartHelper?
to me, "restart for up to X times" is the most standard way to retry things
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
RetryRestartHelper contains two words Restart and Retry. but these two means almost the same thing
@@ -280,12 +280,12 @@ where | |||
} | |||
} | |||
|
|||
fn restart_progress_should_run(&mut self, state: &mut Self::State) -> Result<bool, Error> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wouldn't change this name, it might be confusing / people might (try to) call it in a non-restarting context, no?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
4 words connected with _ is too long.
what about should_restart
?
At this point we could also decide to make handles always use ints instead of stings(?) Would mean hashtable lookups get faster |
it needs to be string as aarnav wants it to be similar to afl++ right? |
I mean we can still have the name, but hashtable lookups could be int |
Maybe in a diffrent PR. but it's possible. |
It fails because of network error, not my code's fault |
… restart safety. Make stage names unique (AFLplusplus#2331) * push * fuck * add * add * api * api * add multi machine to workspace * doc * api * api * add * more * fix * stats * rev * fix * fix * real fix * add * fmt * add * add * fix * a * add * revert workflow --------- Co-authored-by: Your Name <you@example.com>
No description provided.