diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2024-07-01 14:26:05 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2024-08-02 13:16:51 +0000 |
| commit | 66fcb0a84fcd55ad8e1444cdd0bc0ad6592f7329 (patch) | |
| tree | 998e52d5569938e0251da1eb7c54c3746186b488 /pkg/fuzzer/job.go | |
| parent | 1e9c4cf3ae82ef82220af312606fffe65e124563 (diff) | |
pkg/fuzzer: try to triage on different VMs
Distribute triage requests to different VMs.
Diffstat (limited to 'pkg/fuzzer/job.go')
| -rw-r--r-- | pkg/fuzzer/job.go | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/pkg/fuzzer/job.go b/pkg/fuzzer/job.go index 8586c6861..85d2dcfe6 100644 --- a/pkg/fuzzer/job.go +++ b/pkg/fuzzer/job.go @@ -54,10 +54,11 @@ func mutateProgRequest(fuzzer *Fuzzer, rnd *rand.Rand) *queue.Request { // During triage we understand if these programs in fact give new coverage, // and if yes, minimize them and add to corpus. type triageJob struct { - p *prog.Prog - flags ProgFlags - fuzzer *Fuzzer - queue queue.Executor + p *prog.Prog + executor queue.ExecutorID + flags ProgFlags + fuzzer *Fuzzer + queue queue.Executor // Set of calls that gave potential new coverage. calls map[int]*triageCall } @@ -179,6 +180,7 @@ func (job *triageJob) handleCall(call int, info *triageCall) { } func (job *triageJob) deflake(exec func(*queue.Request, ProgFlags) *queue.Result) (stop bool) { + avoid := []queue.ExecutorID{job.executor} needRuns := deflakeNeedCorpusRuns if job.fuzzer.Config.Snapshot { needRuns = deflakeNeedSnapshotRuns @@ -201,11 +203,13 @@ func (job *triageJob) deflake(exec func(*queue.Request, ProgFlags) *queue.Result Prog: job.p, ExecOpts: setFlags(flatrpc.ExecFlagCollectCover | flatrpc.ExecFlagCollectSignal), ReturnAllSignal: indices, + Avoid: avoid, Stat: job.fuzzer.statExecTriage, }, progInTriage) if result.Stop() { return true } + avoid = append(avoid, result.Executor) if result.Info == nil { continue // the program has failed } |
