aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/fuzzer/queue/retry.go
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2024-05-14 16:52:34 +0200
committerDmitry Vyukov <dvyukov@google.com>2024-05-16 15:38:27 +0000
commit086ab166bbbf17d3f0a16c8b27f1995a70908b35 (patch)
tree1062586c30bfc16aa5a7629cd4314cf7345da197 /pkg/fuzzer/queue/retry.go
parent1cf9be9327cbff5ed11e2106e362039f09aaed7c (diff)
pkg/fuzzer/queue: retry inputs from crashed VMs
Mark some requests as Important. The Retry() layer will give them one more chance even if they were not executed due to a VM crash. For now, the only important requests are related to triage, candidates and pkg/vminfo tests. Add tests for retry.go.
Diffstat (limited to 'pkg/fuzzer/queue/retry.go')
-rw-r--r--pkg/fuzzer/queue/retry.go6
1 files changed, 6 insertions, 0 deletions
diff --git a/pkg/fuzzer/queue/retry.go b/pkg/fuzzer/queue/retry.go
index 0b2e02ba5..c59a2c048 100644
--- a/pkg/fuzzer/queue/retry.go
+++ b/pkg/fuzzer/queue/retry.go
@@ -33,5 +33,11 @@ func (r *retryer) done(req *Request, res *Result) bool {
r.pq.Submit(req)
return false
}
+ // Retry important requests from crashed VMs once.
+ if res.Status == Crashed && req.Important && !req.onceCrashed {
+ req.onceCrashed = true
+ r.pq.Submit(req)
+ return false
+ }
return true
}