[autoroll] Fix out-of-bounds in github repo manager
Change-Id: I2ccfded39305e2d25ca3a27a9c74c07a4dda9133
Reviewed-on: https://skia-review.googlesource.com/c/buildbot/+/256022
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
diff --git a/autoroll/go/repo_manager/github_repo_manager.go b/autoroll/go/repo_manager/github_repo_manager.go
index 8f9d84a..b4020b3 100644
--- a/autoroll/go/repo_manager/github_repo_manager.go
+++ b/autoroll/go/repo_manager/github_repo_manager.go
@@ -244,14 +244,17 @@
filtered = append(filtered, notRolledRev)
}
}
- notRolledRevs = filtered
// We may have filtered out tipRev. For consistency's sake, it
// needs to be in notRolledRevs, so pick the latest rev and use
// that.
- if notRolledRevs[0].Id != tipRev.Id {
- sklog.Warningf("Filtered out tip revision %s; using %s instead.", tipRev.Id, notRolledRevs[0].Id)
- tipRev = notRolledRevs[0]
+ if len(filtered) == 0 {
+ sklog.Warningf("Filtered out tip revision %s, and no notRolledRevs remain; using last roll rev %s", tipRev.Id, lastRollRev.Id)
+ tipRev = lastRollRev
+ } else if filtered[0].Id != tipRev.Id {
+ sklog.Warningf("Filtered out tip revision %s; using %s instead.", tipRev.Id, filtered[0].Id)
+ tipRev = filtered[0]
}
+ notRolledRevs = filtered
}
}