You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the fuzzfail directory, ran the following commands:
$ rm -rf /home/ubuntu/.cache/go-build/fuzz/example.com/
$ GOMAXPROCS=1 go test -fuzz FuzzFail
warning: starting with empty corpus
fuzz: elapsed: 0s, execs: 0 (0/sec), new interesting: 0 (total: 0)
fuzz: elapsed: 3s, execs: 23709 (7895/sec), new interesting: 7 (total: 7)
fuzz: elapsed: 6s, execs: 23709 (0/sec), new interesting: 7 (total: 7)
fuzz: elapsed: 9s, execs: 426802 (135060/sec), new interesting: 8 (total: 8)
(This example is quite fragile, and it is often necessary to clear the fuzzing cache as shown first, for it to manifest.)
What did you expect to see?
Low variance in the fuzzing rate, and no 3s intervals with (0/sec).
What did you see instead?
High variance in the fuzzing rate, and 3s intervals WITH (0/sec) (after the first line of output, where it's expected with an empty cache.)
This is simplified from a much more complex fuzzing test where the variance in the fuzzing rate hurts more, and the fuzzing rate drops to zero for longer periods.
It happens without setting GOMAXPROCS, but happens more reliably if it's set to 1.
Incrementing the loop variable i by 7 is weird, but the issue does not occur for me if it's set to 1. (7 is an accident from what I was parsing out from the fuzzing input in the more complex test.)
The text was updated successfully, but these errors were encountered:
bcmills
changed the title
affected/package: fuzzer
testing: unexpected variance in fuzzing rate
Oct 31, 2023
Without looking too closely I believe this is caused by minimization not contributing to the "fuzzing rate", which makes it look like the fuzzer has stalled while it is minimizing a new candidate input.
Thanks. I will run the fuzzer on the system I reduced this example from until the new interesting value stabilizes, and see whether I still get slowdowns. That does seem the likely explanation for this example, though, given that clearing the fuzzing cache is often necessary.
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
Yes, if 1.21.3 is the latest release.
What operating system and processor architecture are you using (
go env
)?go env
OutputWhat did you do?
fuzzfail/fuzz_test.go
:fuzzfail/go.mod
:fuzzfail
directory, ran the following commands:$ rm -rf /home/ubuntu/.cache/go-build/fuzz/example.com/ $ GOMAXPROCS=1 go test -fuzz FuzzFail warning: starting with empty corpus fuzz: elapsed: 0s, execs: 0 (0/sec), new interesting: 0 (total: 0) fuzz: elapsed: 3s, execs: 23709 (7895/sec), new interesting: 7 (total: 7) fuzz: elapsed: 6s, execs: 23709 (0/sec), new interesting: 7 (total: 7) fuzz: elapsed: 9s, execs: 426802 (135060/sec), new interesting: 8 (total: 8)
(This example is quite fragile, and it is often necessary to clear the fuzzing cache as shown first, for it to manifest.)
What did you expect to see?
Low variance in the fuzzing rate, and no 3s intervals with
(0/sec)
.What did you see instead?
High variance in the fuzzing rate, and 3s intervals WITH
(0/sec)
(after the first line of output, where it's expected with an empty cache.)This is simplified from a much more complex fuzzing test where the variance in the fuzzing rate hurts more, and the fuzzing rate drops to zero for longer periods.
It happens without setting
GOMAXPROCS
, but happens more reliably if it's set to1
.Incrementing the loop variable
i
by7
is weird, but the issue does not occur for me if it's set to1
. (7
is an accident from what I was parsing out from the fuzzing input in the more complex test.)The text was updated successfully, but these errors were encountered: