From c60038a3f5efcf3a117af946fdff6c2c630215df Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Fri, 5 Jul 2024 10:42:08 +0200 Subject: 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. --- syz-manager/manager.go | 9 +++++++++ 1 file changed, 9 insertions(+) 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) } -- cgit mrf-deployment