aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2024-07-05 10:42:08 +0200
committerDmitry Vyukov <dvyukov@google.com>2024-07-05 10:00:39 +0000
commitc60038a3f5efcf3a117af946fdff6c2c630215df (patch)
tree4ad5f742513d3935e1d511c0b47b553673654dc1
parent76e0d5e0b3f39b94a5427c7a68e8062adcd27af1 (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.go9
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)
}