-
Notifications
You must be signed in to change notification settings - Fork 279
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
Panic causes fuzzing cessation #262
Comments
I am AFK for a while, it if you want to dig into this, it’d be useful to know whether this is a recent regression. Note that any time you change go-fuzz version you must also rebuild go-fuzz-build and rebuild your fuzz zip. |
Tried it with this commit from January and it still happens: I rebuilt go-fuzz and go-fuzz-build then built a new fuzzer. |
Noticed the panic ends up in
|
My experience: as soon as the fuzzer finds a panic, it always greatly decreases the execs/sec for me. I usually stop it and fix the bug. This has been like this for years for me with go-fuzz. Perhaps continuing to run the fuzzer it might eventually get over it, but I never tried that. |
The problem is that the corpus inputs never reach the hub, the component that makes shared resources available to the workers. Initially corpus inputs go into a triage queue where they are tested with the target program. After this the inputs are fed to the hub. However if the program panics on these test inputs they don't reach the hub. There is even a comment in the code that says that you shouldn't provide crashing inputs in the initial corpus. So I will investigate how to mitigate this. Because crashing inputs alone do not necessarily lead to this behavior. It appears that you need a lot of subsequent crashes until the fuzzer "gives up". I'm not sure yet when this point is reached. EDIT: Ok, I think know what to do. I will try to provide a pull request until the end of the day. |
If my fuzz function panics, it seems to cause cessation of all fuzzing. Output starts showing
execs: 0 (0/sec)
. Not sure if that's the expected behavior or not. I was imagining it would log the panic as a crash then keep mutating.pineapple
has a test case.go-fuzz-build && go-fuzz -v=4
It never seems to pick back up:
The text was updated successfully, but these errors were encountered: