diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2024-07-05 10:42:08 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2024-07-05 10:00:39 +0000 |
| commit | c60038a3f5efcf3a117af946fdff6c2c630215df (patch) | |
| tree | 4ad5f742513d3935e1d511c0b47b553673654dc1 | |
| parent | 76e0d5e0b3f39b94a5427c7a68e8062adcd27af1 (diff) | |
syz-manager: reproduce each bug at most once in DashboardOnlyRepro mode
Since we don't upload bugs/repros to dashboard, it likely won't have
the reproducer even if we succeeded last time, and will repeatedly
say it needs a repro.
| -rw-r--r-- | syz-manager/manager.go | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/syz-manager/manager.go b/syz-manager/manager.go index 58b578451..9990aacc0 100644 --- a/syz-manager/manager.go +++ b/syz-manager/manager.go @@ -387,6 +387,7 @@ func (mgr *Manager) vmLoop() { runDone := make(chan *RunResult, 1) pendingRepro := make(map[*Crash]bool) reproducing := make(map[string]bool) + attemptedRepros := make(map[string]bool) var reproQueue []*Crash reproDone := make(chan *ReproResult, 1) stopPending := false @@ -404,7 +405,15 @@ func (mgr *Manager) vmLoop() { if !mgr.needRepro(crash) { continue } + if mgr.cfg.DashboardOnlyRepro && attemptedRepros[crash.Title] { + // Try to reproduce each bug at most 1 time in this mode. + // Since we don't upload bugs/repros to dashboard, it likely won't have + // the reproducer even if we succeeded last time, and will repeatedly + // say it needs a repro. + continue + } log.Logf(1, "loop: add to repro queue '%v'", crash.Title) + attemptedRepros[crash.Title] = true reproducing[crash.Title] = true reproQueue = append(reproQueue, crash) } |
